PHP
संगीतकार निर्भरता प्रबंधक
खोज…
परिचय
संगीतकार PHP का सबसे अधिक इस्तेमाल किया जाने वाला निर्भरता प्रबंधक है। यह नोड में npm
के अनुरूप है, पायथन के लिए pip
या .NET के लिए NuGet
है।
वाक्य - विन्यास
- php पथ / to / कंपोजर। थार [कमांड] [विकल्प] [तर्क]
पैरामीटर
पैरामीटर | विवरण |
---|---|
लाइसेंस | प्रोजेक्ट में आपके द्वारा उपयोग किए जाने वाले लाइसेंस के प्रकार को परिभाषित करता है। |
लेखकों | परियोजना के लेखकों को परिभाषित करता है, साथ ही साथ लेखक का विवरण भी। |
सहयोग | समर्थन ईमेल, irc चैनल और विभिन्न लिंक को परिभाषित करता है। |
की आवश्यकता होती है | वास्तविक निर्भरता और साथ ही पैकेज संस्करणों को परिभाषित करता है। |
की आवश्यकता होती है-देव | परियोजना के विकास के लिए आवश्यक संकुल को परिभाषित करता है। |
सुझाना | पैकेज के सुझावों को परिभाषित करता है, अर्थात संकुल जो अगर स्थापित किया जा सकता है। |
autoload | परियोजना की ऑटोलॉडिंग नीतियों को परिभाषित करता है। |
autoload-देव | परियोजना के विकास के लिए ऑटोलॉडिंग नीतियों को परिभाषित करता है। |
टिप्पणियों
ऑटोलॉगडिंग केवल उन पुस्तकालयों के लिए काम करेगी जो ऑटोलॉड जानकारी को निर्दिष्ट करते हैं। अधिकांश पुस्तकालय ऐसा करते हैं और PSR-0 या PSR-4 जैसे मानक का पालन करेंगे।
सहायक लिंक्स
- पैकगिस्ट - उपलब्ध पैकेज ब्राउज़ करें (जिसे आप संगीतकार के साथ स्थापित कर सकते हैं)।
- आधिकारिक दस्तावेज
- आधिकारिक प्रारंभ करना मार्गदर्शिका
कुछ सुझाव
- कम्पोज़र चलाते समय xdebug अक्षम करें।
- कम्पोजर को
root
रूप में न चलाएं। पैकेजों पर भरोसा नहीं किया जाना है।
संगीतकार क्या है?
संगीतकार PHP के लिए एक निर्भरता / पैकेज प्रबंधक है। इसका उपयोग आपके प्रोजेक्ट निर्भरता को स्थापित करने, ट्रैक करने और अद्यतन करने के लिए किया जा सकता है। संगीतकार भी निर्भर करता है कि आपके आवेदन पर निर्भर करता है, आप आसानी से किसी भी फ़ाइल के शीर्ष पर उनके बारे में चिंता किए बिना अपने प्रोजेक्ट के अंदर निर्भरता का उपयोग करने देता है।
आपकी परियोजना के लिए निर्भरता composer.json
फ़ाइल के भीतर सूचीबद्ध होती है, जो आमतौर पर आपके प्रोजेक्ट रूट में स्थित होती है। यह फ़ाइल उत्पादन और विकास के लिए संकुल के आवश्यक संस्करणों के बारे में जानकारी रखती है।
कंपोज़र वेबसाइट पर composer.json
स्कीमा की पूरी रूपरेखा मिल सकती है।
यह फाइल किसी भी टेक्स्ट-एडिटर या कमांड लाइन के माध्यम से मैन्युअल रूप से कमांड के माध्यम से संपादित की जा सकती है जैसे composer require <package>
या composer require-dev <package>
।
अपने प्रोजेक्ट में कंपोजर का उपयोग शुरू करने के लिए, आपको composer.json
फ़ाइल बनानी होगी। आप इसे या तो मैन्युअल रूप से बना सकते हैं या बस composer init
चला सकते हैं। आपके टर्मिनल में composer init
चलाने के बाद, यह आपसे आपकी परियोजना के बारे में कुछ बुनियादी जानकारी मांगेगा: पैकेज का नाम ( विक्रेता / पैकेज - जैसे laravel/laravel
), विवरण - वैकल्पिक , लेखक और कुछ अन्य जानकारी जैसे न्यूनतम स्थिरता, लाइसेंस और आवश्यक संकुल।
आपके composer.json
फ़ाइल में require
कुंजी composer.json
निर्दिष्ट करती है जो आपकी परियोजना पर निर्भर करता है। require
एक ऐसी वस्तु को लेती है जो संस्करण बाधाओं (जैसे 1.0। *) के लिए संकुल नाम (जैसे एकालाप / मोनोलॉग ) का नक्शा बनाती है।
{
"require": {
"composer/composer": "1.2.*"
}
}
परिभाषित निर्भरताएं स्थापित करने के लिए, आपको composer install
कमांड को चलाने की आवश्यकता होगी और यह तब परिभाषित पैकेजों को खोजेगा जो आपूर्ति किए गए version
कमी से मेल खाते हैं और इसे vendor
निर्देशिका में डाउनलोड करते हैं। यह एक vendor
नाम की निर्देशिका में थर्ड पार्टी कोड डालने के लिए एक सम्मेलन है।
आप देखेंगे install
आदेश भी एक बनाया composer.lock
फ़ाइल।
composer.lock
द्वारा एक composer.lock
फ़ाइल स्वचालित रूप से जेनरेट की जाती है। इस फ़ाइल का उपयोग वर्तमान में स्थापित संस्करणों और आपकी निर्भरता की स्थिति को ट्रैक करने के लिए किया जाता है। रनिंग composer install
लॉक फ़ाइल में संग्रहीत राज्य के लिए पैकेज composer install
करेगा।
संगीतकार के साथ ऑटोलडिंग
जबकि संगीतकार PHP परियोजनाओं के लिए निर्भरता को प्रबंधित करने के लिए एक प्रणाली प्रदान करता है (जैसे कि पैकगिस्ट से ), यह विशेष रूप से एक ऑटोलॉडर के रूप में भी काम कर सकता है, यह निर्दिष्ट करते हुए कि विशिष्ट नामस्थान देखने के लिए या जेनेरिक फ़ंक्शन फ़ाइलों को शामिल करना कहां है।
यह composer.json
फ़ाइल से शुरू होता है:
{
// ...
"autoload": {
"psr-4": {
"MyVendorName\\MyProject": "src/"
},
"files": [
"src/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"MyVendorName\\MyProject\\Tests": "tests/"
}
}
}
यह विन्यास कोड सुनिश्चित है कि नाम स्थान में सभी वर्गों MyVendorName\MyProject
पर मैप किए जाते src
निर्देशिका में सभी वर्गों और MyVendorName\MyProject\Tests
के लिए tests
निर्देशिका (अपने रूट निर्देशिका के सापेक्ष)। यह स्वचालित रूप से फ़ाइल functions.php
को भी शामिल करेगा। functions.php
।
अपनी composer.json
फ़ाइल में इसे डालने के बाद, कंपोज़र को निर्भरता, लॉक फ़ाइल को अपडेट करने के लिए एक टर्मिनल में composer update
को रन composer update
और autoload.php
. autoload.php
फाइल जेनरेट करें। जब आप एक उत्पादन वातावरण में तैनात करते हैं तो आप composer install --no-dev
उपयोग करेंगे composer install --no-dev
। autoload.php
फ़ाइल को vendor
निर्देशिका में पाया जा सकता है, जिसे composer.json
.json के उस निर्देशिका में जेनरेट किया जाना चाहिए।
आप चाहिए require
एक पंक्ति है कि नीचे के लिए इसी तरह का उपयोग कर अपने आवेदन के जीवन चक्र में एक सेटअप बिंदु पर जल्दी इस फाइल।
require_once __DIR__ . '/vendor/autoload.php';
एक बार शामिल होने के बाद, autoload.php
फ़ाइल आपके composer.json
फ़ाइल में आपके द्वारा प्रदान की गई सभी निर्भरता को लोड करने का ख्याल रखती है।
मैपिंग निर्देशिका के पथ पथ के कुछ उदाहरण:
-
MyVendorName\MyProject\Shapes\Square
src/Shapes/Square.php
। -
MyVendorName\MyProject\Tests\Shapes\Square
tests/Shapes/Square.php
।
संगीतकार का उपयोग करने के लाभ
कंपोज़र ट्रैक जो पैकेजों के संस्करणों को आपने composer.lock
नामक एक फ़ाइल में स्थापित किया है, जिसका उद्देश्य संस्करण नियंत्रण के लिए प्रतिबद्ध है, ताकि जब भविष्य में प्रोजेक्ट को क्लोन किया जाए, तो बस चल रहे composer install
इंस्टॉल सभी प्रोजेक्ट की निर्भरता को डाउनलोड और इंस्टॉल करेंगे ।
कम्पोज़र एक प्रति-परियोजना के आधार पर पीएचपी निर्भरता से संबंधित है। इससे एक मशीन पर कई परियोजनाएं करना आसान हो जाता है जो एक PHP पैकेज के अलग-अलग संस्करणों पर निर्भर करते हैं।
संगीतकार ट्रैक जो निर्भरता केवल देव वातावरण के लिए है
composer require --dev phpunit/phpunit
संगीतकार एक ऑटोलैडर प्रदान करता है, जिससे किसी भी पैकेज के साथ शुरुआत करना बेहद आसान है। उदाहरण के लिए, composer require fabpot/goutte
साथ Goutte को स्थापित करने के बाद composer require fabpot/goutte
, आप तुरंत एक नए प्रोजेक्ट में Goutte का उपयोग शुरू कर सकते हैं:
<?php
require __DIR__ . '/vendor/autoload.php';
$client = new Goutte\Client();
// Start using Goutte
संगीतकार आपको एक प्रोजेक्ट को नवीनतम संस्करण में आसानी से अपडेट करने की अनुमति देता है जिसकी अनुमति आपके कंपोजर ने दी है। ईजी। composer update fabpot/goutte
, या आपके प्रोजेक्ट की निर्भरता में से प्रत्येक को अपडेट करने के लिए: composer update
।
'कंपोज़र इंस्टॉल' और 'कंपोज़र अपडेट' के बीच अंतर
composer update
composer update
के रूप में वे में निर्दिष्ट हमारी निर्भरता अद्यतन करेगा composer.json
।
उदाहरण के लिए, यदि हमारी परियोजना इस विन्यास का उपयोग करती है:
"require": {
"laravelcollective/html": "2.0.*"
}
मान लें कि हमने वास्तव में पैकेज के 2.0.1
संस्करण को स्थापित किया है, तो composer update
चलाने से इस पैकेज का उन्नयन होगा (उदाहरण के लिए 2.0.2
, यदि यह पहले ही जारी हो चुका है)।
विस्तार से composer update
होगा:
-
composer.json
पढ़ें - उन संस्थापित पैकेजों को निकालें, जिनकी
composer.json
में कोई आवश्यकता नहीं है - हमारे आवश्यक पैकेजों के नवीनतम संस्करणों की उपलब्धता की जाँच करें
- हमारे संकुल के नवीनतम संस्करण स्थापित करें
- इंस्टॉल किए गए संकुल संस्करण को संग्रहीत करने के लिए
composer.lock
अपडेट करें
composer install
composer install
कुछ भी अपडेट किए बिना, निर्दिष्ट किए गए (लॉक किए गए) संस्करण में composer.lock
फ़ाइल में निर्दिष्ट सभी निर्भरता को composer install
करेगा।
विस्तार से:
-
composer.lock
फ़ाइल पढ़ें -
composer.lock
फ़ाइल में निर्दिष्ट पैकेजों को स्थापित करें
कब इंस्टॉल करना है और कब अपडेट करना है
composer update
का उपयोग ज्यादातर 'विकास' चरण में किया जाता है, हमारे प्रोजेक्ट पैकेजों को अपग्रेड करने के लिए।composer install
मुख्य रूप से एक उत्पादन सर्वर पर या एक परीक्षण वातावरण पर हमारे आवेदन स्थापित करने के लिए, में संग्रहीत एक ही निर्भरता का उपयोग कर 'की तैनाती चरण' में प्रयोग किया जाता हैcomposer.lock
द्वारा बनाई गई फ़ाइलcomposer update
।
कम्पोजर उपलब्ध कमांड्स
आदेश | प्रयोग |
---|---|
के बारे में | संगीतकार के बारे में संक्षिप्त जानकारी |
पुरालेख | इस संगीतकार पैकेज का एक संग्रह बनाएँ |
ब्राउज़ | आपके ब्राउज़र में पैकेज का रिपॉजिटरी URL या होमपेज खोलता है। |
कैश को साफ़ करें | संगीतकार का आंतरिक पैकेज कैश साफ़ करता है। |
कैश को साफ़ करें | संगीतकार का आंतरिक पैकेज कैश साफ़ करता है। |
config | कॉन्फ़िगर विकल्प सेट करें |
बनाने परियोजना | दिए गए डायरेक्टरी में एक पैकेज से नई परियोजना बनाएं। |
निर्भर करता है | दिखाता है कि कौन से पैकेज दिए गए पैकेज को स्थापित करते हैं |
का निदान | सामान्य त्रुटियों की पहचान करने के लिए प्रणाली का निदान करता है। |
डंप-autoload | ऑटोलैडर को डंप करता है |
dumpautoload | ऑटोलैडर को डंप करता है |
कार्यकारी | एक परिशोधित बाइनरी / स्क्रिप्ट निष्पादित करें |
वैश्विक | वैश्विक कंपोजर dir ($ COMPOSER_HOME) में कमांड चलाने की अनुमति देता है। |
मदद | कमांड के लिए मदद प्रदर्शित करता है |
घर | आपके ब्राउज़र में पैकेज का रिपॉजिटरी URL या होमपेज खोलता है। |
जानकारी | पैकेज के बारे में जानकारी दिखाएं |
इस में | करंट डायरेक्टरी में एक बेसिक कंपोजर.जेसन फाइल बनाता है। |
इंस्टॉल | कंपोज़र.लोक फ़ाइल से प्रोजेक्ट निर्भरताएँ यदि मौजूद है, या कंपोज़र.जॉन पर वापस आती है। |
लाइसेंस | निर्भरता के लाइसेंस के बारे में जानकारी दिखाएं |
सूची | आदेशों को सूचीबद्ध करता है |
रगड़ा हुआ | उन स्थापित पैकेजों की सूची दिखाता है जिनमें अपडेट उपलब्ध हैं, जिसमें उनका नवीनतम संस्करण भी शामिल है। |
पर प्रतिबंध लगाता है | दिखाता है कि कौन से पैकेज दिए गए पैकेज को स्थापित होने से रोकता है |
हटाना | आवश्यकता या आवश्यकता-देव से पैकेज निकालता है |
की आवश्यकता होती है | आपके कंपोज़र के लिए आवश्यक पैकेज जोड़ता है। Json और उन्हें इंस्टॉल करता है |
रन-स्क्रिप्ट | कंपोज़र.जॉन में परिभाषित स्क्रिप्ट चलाएँ। |
खोज | पैकेज की खोज करें |
आत्म अद्यतन | नवीनतम संस्करण के लिए कंपोज़र अपडेट करें। |
SelfUpdate | नवीनतम संस्करण के लिए कंपोजर अपडेट करें। |
प्रदर्शन | पैकेज के बारे में जानकारी दिखाएं |
स्थिति | स्थानीय रूप से संशोधित पैकेजों की एक सूची दिखाएं |
पता चलता है | पैकेज के सुझाव दिखाएं |
अपडेट करें | अपनी निर्भरता को कंपोज़र.जॉन के अनुसार नवीनतम संस्करण में अपडेट करता है, और कंपोज़र.लॉक फ़ाइल को अपडेट करता है। |
सत्यापित करें | एक संगीतकार.जॉन और कंपोजर को मान्य करता है |
क्यों | दिखाता है कि कौन से पैकेज दिए गए पैकेज को स्थापित करते हैं |
क्यों नहीं | दिखाता है कि कौन से पैकेज दिए गए पैकेज को स्थापित होने से रोकते हैं |
स्थापना
आप अपनी परियोजना के हिस्से के रूप में, या विश्व स्तर पर कम्पोज़र को निष्पादन योग्य प्रणाली के रूप में स्थापित कर सकते हैं।
स्थानीय स्तर पर
स्थापित करने के लिए, इन आदेशों को अपने टर्मिनल में चलाएं।
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# to check the validity of the downloaded installer, check here against the SHA-384:
# https://composer.github.io/pubkeys.html
php composer-setup.php
php -r "unlink('composer-setup.php');"
यह मौजूदा निर्देशिका के लिए composer.phar
(एक PHP संग्रह फ़ाइल) डाउनलोड करेगा। अब आप कम्पोज़र, जैसे का उपयोग करने के लिए php composer.phar
चला सकते हैं
php composer.phar install
वैश्विक स्तर पर
विश्व स्तर पर कंपोज़र का उपयोग करने के लिए, कंपोजर को फाइल को एक निर्देशिका में रखें जो आपके PATH
का हिस्सा है
mv composer.phar /usr/local/bin/composer
अब आप php composer.phar
बजाय कहीं भी composer
उपयोग कर सकते हैं
composer install