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.jsoncomposer.jsoncomposer.lockकिए गए संकुल संस्करण को संग्रहीत करने के लिए अद्यतन करेंसंगीतकार स्थापित करें
composer installकुछ भी अपडेट नहीं करेगा; यह composer.lockफ़ाइल में निर्दिष्ट सभी निर्भरताओं को स्थापित करेगा
विस्तार से:
composer.lockफ़ाइल मौजूद है (यदि नहीं, तो चलाएं composer-updateऔर बनाएं)composer.lockफ़ाइल पढ़ेंcomposer.lockफ़ाइल में निर्दिष्ट संकुल को स्थापित करेंकब इंस्टॉल करना है और कब अपडेट करना है
composer updateज्यादातर 'विकास के चरण' में उपयोग किया जाता है, हमारे प्रोजेक्ट पैकेजों को composer.jsonफ़ाइल में निर्दिष्ट किए गए अनुसार अपग्रेड करने के लिए ,
composer install कंपोज़र अपडेट द्वारा बनाई गई कंपोज़र.लॉक फ़ाइल में संग्रहीत समान निर्भरता का उपयोग करके, उत्पादन सर्वर या परीक्षण वातावरण पर हमारे एप्लिकेशन को स्थापित करने के लिए मुख्य रूप से 'तैनाती चरण' में उपयोग किया जाता है।
composer global updateस्थानीय प्रणाली ( COMPOSER_HOMEenv वेरिएबल) पर अपने वैश्विक भंडार में निर्भरता को अद्यतन करता है
composer updateअपने स्थानीय सिस्टम पर चलना चाहिए और अपने एप्लिकेशन का परीक्षण करना चाहिए , फिर कंपोज़र को अपलोड करें। अपने प्रोडक्शन सर्वर पर चलाएं और चलाएंcomposer install
जब आप composer installइसे चलाते हैं तो यह एक लॉक फ़ाइल की तलाश करेगा और इसमें जो कुछ भी निहित है उसे स्थापित करेगा, अगर यह एक नहीं मिल सकता है, तो यह पढ़ेगा composer.json, इसकी निर्भरताएं स्थापित करेगा और लॉकफ़ाइल उत्पन्न करेगा।
जब आप composer updateइसे चलाते हैं तो यह केवल पढ़ता है composer.json, निर्भरताएं स्थापित करता है और लॉकफाइल को अपडेट करता है (या एक नया लॉकफाइल बनाता है)।
composer installcomposer.lockमौजूद है।
composer.lockफ़ाइल से निर्भरता को संसाधित और स्थापित करता है ।composer.lockकरता नहीं मौजूद हैं।
composer.json।composer.lockस्थापित पैकेज के आधार पर फ़ाइल बनाता है।प्रति composer help install:
इंस्टॉल कमांड
composer.lockवर्तमान निर्देशिका से फाइल को पढ़ता है , इसे संसाधित करता है, और डाउनलोड करता है और उस फ़ाइल में उल्लिखित सभी पुस्तकालयों और निर्भरता को स्थापित करता है। यदि फ़ाइल मौजूद नहीं हैcomposer.jsonतो यह उसी के लिए खोजेगी और करेगी ।
composer updatecomposer.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शुरुआत में देखभाल करना बेहतर है ।
इसके अलावा, एक सटीक संस्करण पर सिमेंटिक संस्करण का एक फायदा है। हम विकास के दौरान निर्भरता को कई बार अपडेट कर सकते हैं और लाइब्रेरी में अक्सर कुछ छोटे बदलाव होते हैं जैसे बग फिक्स। फिर निर्भरता को अपग्रेड करना आसान है जो सिमेंटिक संस्करण का उपयोग करता है।