खोज…


परिचय

संगीतकार PHP का सबसे अधिक इस्तेमाल किया जाने वाला निर्भरता प्रबंधक है। यह नोड में npm के अनुरूप है, पायथन के लिए pip या .NET के लिए NuGet है।

वाक्य - विन्यास

  • php पथ / to / कंपोजर। थार [कमांड] [विकल्प] [तर्क]

पैरामीटर

पैरामीटर विवरण
लाइसेंस प्रोजेक्ट में आपके द्वारा उपयोग किए जाने वाले लाइसेंस के प्रकार को परिभाषित करता है।
लेखकों परियोजना के लेखकों को परिभाषित करता है, साथ ही साथ लेखक का विवरण भी।
सहयोग समर्थन ईमेल, irc चैनल और विभिन्न लिंक को परिभाषित करता है।
की आवश्यकता होती है वास्तविक निर्भरता और साथ ही पैकेज संस्करणों को परिभाषित करता है।
की आवश्यकता होती है-देव परियोजना के विकास के लिए आवश्यक संकुल को परिभाषित करता है।
सुझाना पैकेज के सुझावों को परिभाषित करता है, अर्थात संकुल जो अगर स्थापित किया जा सकता है।
autoload परियोजना की ऑटोलॉडिंग नीतियों को परिभाषित करता है।
autoload-देव परियोजना के विकास के लिए ऑटोलॉडिंग नीतियों को परिभाषित करता है।

टिप्पणियों

ऑटोलॉगडिंग केवल उन पुस्तकालयों के लिए काम करेगी जो ऑटोलॉड जानकारी को निर्दिष्ट करते हैं। अधिकांश पुस्तकालय ऐसा करते हैं और PSR-0 या PSR-4 जैसे मानक का पालन करेंगे।

सहायक लिंक्स

कुछ सुझाव

  1. कम्पोज़र चलाते समय xdebug अक्षम करें।
  2. कम्पोजर को 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-devautoload.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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow