मुझे कुछ पुस्तकालय [फू और बार] मिले हैं, जिन्हें मैं संगीत कार्यक्रम में विकसित कर रहा हूं, लेकिन अभी भी तकनीकी रूप से अलग चीजें हैं। पहले मैंने ऑटोलैडर को फिर से परिभाषित करने के लिए पसंद किया है "Foo\\": "../Foo/src"
, लेकिन अब जब मैंने फू में एक गज़ल निर्भरता जोड़ दी है, तो बार यह ढक्कन है क्योंकि यह इसकी निर्भरता में से एक नहीं है।
निर्देशिका संरचना:
/home/user/src/
Foo/
src/
FooClient.php
composer.json
Bar/
src/
BarClient.php
composer.json
सैद्धांतिक ऑटोलैड स्टेटमेंट: [बार / कंपोजर.जॉन में]
"require": {
"local": "../Foo/composer.json"
}
उदाहरण कोड:
require('vendor/autoload.php');
$f = new \Bar\BarClient(new \Foo\FooClient());
स्थानीय संगीतकार रेपो स्थापित किए बिना मैं इसे कैसे हल कर सकता हूं? मैं इन्हें अलग पैकेज के रूप में बनाए रखना चाहता हूं, बस एक को दूसरे की आवश्यकता होती है, और इसके बाद दूसरे की निर्भरता को संसाधित करता है।
उत्तर-उत्तर संपादित करें:
शिशु के लिए धन्यवाद मैंने निम्नलिखित कार्य किया है:
आरंभिक प्रतिनिधि रेपो:
cd ~/src/Foo && git init && echo -e "vendor\ncomposer.lock" > .gitignore && git add ./ && git commit -m "Initial Commit"
संगीतकार विन्यास जोड़ा गया:
"require": {
"sammitch/foo": "dev-master"
},
"repositories": [{
"type": "vcs",
"url": "/home/sammitch/src/Foo"
}],
और फिर composer update
!
sammitch/foo
पैकेज का नाम है और इसका शाब्दिक अर्थ यह नहीं है कि यह कहाँ स्थित है। उपलब्ध कॉन्फ़िगर किए गए रेपो के आधार पर उपलब्ध पैकेजों की एक सूची का निर्माण करेगा, इस मामले में निर्दिष्ट स्थानीय गिट रेपो से कंपोजर.जॉन लाने के लिए, और फिर संगीतकार बाकी को संभालता है। sammitch/foo
पैकेज वर्तमान एप्लिकेशन की कॉपी किया जाता है vendor
फ़ोल्डर किसी अन्य पैकेज के रूप में ही।