composer update
और के बीच अंतर क्या हैं composer install
?
composer update
और के बीच अंतर क्या हैं composer install
?
जवाबों:
संगीतकार अपडेट
composer update
जैसे-जैसे वे निर्दिष्ट होते हैं, वैसे-वैसे आपकी अवसादों को अद्यतन करते जाएंगे composer.json
उदाहरण के लिए, यदि आपको निर्भरता के रूप में इस पैकेज की आवश्यकता है:
"mockery/mockery": "0.9.*",
और आपने वास्तव 0.9.1
में पैकेज के संस्करण को स्थापित किया है , इस पैकेज को चलाने composer update
से इस पैकेज का उन्नयन होगा (उदाहरण के लिए 0.9.2
, यदि यह पहले ही जारी किया जा चुका है)
विस्तार से composer update
होगा:
composer.json
composer.json
composer.lock
किए गए संकुल संस्करण को संग्रहीत करने के लिए अद्यतन करेंसंगीतकार स्थापित करें
composer install
कुछ भी अपडेट नहीं करेगा; यह composer.lock
फ़ाइल में निर्दिष्ट सभी निर्भरताओं को स्थापित करेगा
विस्तार से:
composer.lock
फ़ाइल मौजूद है (यदि नहीं, तो चलाएं composer-update
और बनाएं)composer.lock
फ़ाइल पढ़ेंcomposer.lock
फ़ाइल में निर्दिष्ट संकुल को स्थापित करेंकब इंस्टॉल करना है और कब अपडेट करना है
composer update
ज्यादातर 'विकास के चरण' में उपयोग किया जाता है, हमारे प्रोजेक्ट पैकेजों को composer.json
फ़ाइल में निर्दिष्ट किए गए अनुसार अपग्रेड करने के लिए ,
composer install
कंपोज़र अपडेट द्वारा बनाई गई कंपोज़र.लॉक फ़ाइल में संग्रहीत समान निर्भरता का उपयोग करके, उत्पादन सर्वर या परीक्षण वातावरण पर हमारे एप्लिकेशन को स्थापित करने के लिए मुख्य रूप से 'तैनाती चरण' में उपयोग किया जाता है।
composer global update
स्थानीय प्रणाली ( COMPOSER_HOME
env वेरिएबल) पर अपने वैश्विक भंडार में निर्भरता को अद्यतन करता है
composer update
अपने स्थानीय सिस्टम पर चलना चाहिए और अपने एप्लिकेशन का परीक्षण करना चाहिए , फिर कंपोज़र को अपलोड करें। अपने प्रोडक्शन सर्वर पर चलाएं और चलाएंcomposer install
जब आप composer install
इसे चलाते हैं तो यह एक लॉक फ़ाइल की तलाश करेगा और इसमें जो कुछ भी निहित है उसे स्थापित करेगा, अगर यह एक नहीं मिल सकता है, तो यह पढ़ेगा composer.json
, इसकी निर्भरताएं स्थापित करेगा और लॉकफ़ाइल उत्पन्न करेगा।
जब आप composer update
इसे चलाते हैं तो यह केवल पढ़ता है composer.json
, निर्भरताएं स्थापित करता है और लॉकफाइल को अपडेट करता है (या एक नया लॉकफाइल बनाता है)।
composer install
composer.lock
मौजूद है।
composer.lock
फ़ाइल से निर्भरता को संसाधित और स्थापित करता है ।composer.lock
करता नहीं मौजूद हैं।
composer.json
।composer.lock
स्थापित पैकेज के आधार पर फ़ाइल बनाता है।प्रति composer help install
:
इंस्टॉल कमांड
composer.lock
वर्तमान निर्देशिका से फाइल को पढ़ता है , इसे संसाधित करता है, और डाउनलोड करता है और उस फ़ाइल में उल्लिखित सभी पुस्तकालयों और निर्भरता को स्थापित करता है। यदि फ़ाइल मौजूद नहीं हैcomposer.json
तो यह उसी के लिए खोजेगी और करेगी ।
composer update
composer.json
फ़ाइल से निर्भरता संसाधित करता है (इंस्टॉल, अपडेट और हटाता है)।composer.lock
परिवर्तनों के अनुसार फ़ाइल बनाता या अपडेट करता है ।प्रति composer help update
:
अद्यतन कमांड
composer.json
वर्तमान निर्देशिका से फ़ाइल पढ़ता है , इसे संसाधित करता है, और सभी निर्भरताओं को अपडेट, हटा या स्थापित करता है।
इसे भी देखें: संगीतकार: यह लॉक फाइल के बारे में है
composer update
और के बीच सबसे अच्छा अंतरcomposer install
संगीतकार स्थापित करें
निर्भरता जोड़ने के लिए आपको इसे कंपोजर.जॉन फ़ाइल में मैन्युअल रूप से जोड़ना होगा।
अगर कंपोज़र.लॉक फ़ाइल मौजूद है, तो इस फ़ाइल में जो विशिष्ट है, उसे स्थापित करें
इस कमांड के साथ किसी भी कंपोनेंट को अपडेट नहीं किया जाएगा।
संगीतकार अपडेट
निर्भरता जोड़ने या हटाने के लिए आपको इसे कंपोजर.जॉन फ़ाइल में मैन्युअल रूप से जोड़ना होगा
यदि आप लाइब्रेरी को जोड़ना या हटाना नहीं जानते (जो कि वास्तव में आसान है, तो बस फ़ाइल की आवश्यक संपत्ति में निर्भरता और संस्करण का नाम जोड़ें) composer.json फ़ाइल को मैन्युअल रूप से या आप संशोधित करें इसके बजाय कमांड लाइन का उपयोग करना पसंद करें, इसके लिए संगीतकार के विशेष कार्य हैं:
संगीतकार की आवश्यकता है
उदाहरण के लिए यदि हम कमांड लाइन के साथ एक निर्भरता जोड़ना चाहते हैं तो हम बस निष्पादित करेंगे
composer require twig/twig
संगीतकार हटा
यदि आप अप्रयुक्त निर्भरता को दूर करना चाहते हैं, तो हम बस निष्पादित करेंगे:
composer remove twig/twig --update-with-dependencies
if(composer.lock existed){
installs dependency with EXACT version in composer.lock file
} else {
installs dependency with LATEST version in composer.json
generate the composer.lock file
}
composer update = remove composer.lock -> composer install
हमें 2 कमांड क्यों चाहिए मुझे लगता है कि यह संगीतकार द्वारा समझा सकता है।
कल्पना कीजिए, हमारे पास नहीं है composer.lock
और composer.json
एक निर्भरता है "monolog/monolog": "1.0.*"
या "monolog/monolog": "^1.0"
।
फिर, इसके कुछ मामले होंगे
composer install
एक अलग समय में चलते हैं ।क्या होगा यदि हम हमेशा एक EXACT संस्करण का उपयोग करते हैं composer.json
जैसे "monolog/monolog": "1.0.1"
?
हमें अभी भी आवश्यकता है composer.lock
क्योंकि composer.json
केवल आपके निर्भरता के मुख्य संस्करण को ट्रैक करता है, यह निर्भरता के निर्भरता के संस्करण को ट्रैक नहीं कर सकता है।
क्या होगा यदि निर्भरता की सभी निर्भरता भी EXACT संस्करण का उपयोग करें?
कल्पना कीजिए कि आप सभी निर्भरताओं के साथ शुरू करते हैं, जो EXACT संस्करण का उपयोग करते हैं तो आपको इसकी परवाह नहीं है composer.lock
। हालाँकि, कुछ महीने बाद, आप एक नई निर्भरता (या पुराने निर्भरता को अद्यतन) जोड़ते हैं, और इस निर्भरता की निर्भरता EXACT संस्करण का उपयोग नहीं करते हैं। फिर composer.lock
शुरुआत में देखभाल करना बेहतर है ।
इसके अलावा, एक सटीक संस्करण पर सिमेंटिक संस्करण का एक फायदा है। हम विकास के दौरान निर्भरता को कई बार अपडेट कर सकते हैं और लाइब्रेरी में अक्सर कुछ छोटे बदलाव होते हैं जैसे बग फिक्स। फिर निर्भरता को अपग्रेड करना आसान है जो सिमेंटिक संस्करण का उपयोग करता है।