कम्पोज़र: प्रदर्शन के लिए पैकेज का विशिष्ट संस्करण स्थापित करना

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

पैकेज का सटीक संस्करण डेवलपर की सुपरपावर क्यों है?

\n\n

कल्पना करें: आप PHP पर एक प्रोजेक्ट पर काम कर रहे हैं, सब कुछ तेज़ चल रहा है, कोड सुंदर है, ग्राहक संतुष्ट हैं। अचानक - एक बग। आप कोड में जाते हैं, और वहाँ एक लाइब्रेरी पर निर्भरता है जो चुपचाप एक मेजर संस्करण में अपडेट हो गई। और सब कुछ टूट गया। परिचित लगता है? यदि हाँ, तो यह लेख आपके लिए है।

\n\n

आज हम जानेंगे कि कम्पोज़र के माध्यम से पैकेज का विशिष्ट संस्करण कैसे स्थापित करें - PHP में निर्भरता प्रबंधन का मुख्य उपकरण। लेकिन केवल 'कैसे' नहीं, बल्कि अनुकूलन और प्रदर्शन पर ध्यान केंद्रित करते हुए। क्योंकि सही पैकेज संस्करण न केवल स्थिरता है, बल्कि आपके एप्लिकेशन की गति भी है।

\n\n

वैसे, यह प्रश्न Stack Overflow पर सबसे लोकप्रिय में से एक है (हज़ारों व्यूज़!)। और कोई आश्चर्य नहीं: हर दूसरा PHP डेवलपर कम से कम एक बार संस्करण असंगति की समस्या में फँसा है।

\n\n

कम्पोज़र क्या है और संस्करणों को फिक्स क्यों करें?

\n\n

कम्पोज़र PHP के लिए एक निर्भरता प्रबंधक है। यह एक कमांड से लाइब्रेरी, फ्रेमवर्क और टूल्स को जोड़ने की अनुमति देता है। लेकिन इसकी एक विशेषता है: यदि आप विशिष्ट संस्करण निर्दिष्ट नहीं करते हैं, तो यह नवीनतम उपयुक्त संस्करण लेगा। और यह जोखिम भरा हो सकता है।

\n\n

कल्पना करें: आप लॉगिंग के लिए monolog/monolog का उपयोग कर रहे हैं। आपके composer.json में लिखा है:

\n\n
"require": {\n    "monolog/monolog": "^2.0"\n}
\n\n

प्रतीक ^ का अर्थ है '2.0 से 3.0 (शामिल नहीं) तक कोई भी संस्करण'। यदि 2.5 क्रिटिकल बदलावों के साथ आता है - तो आपका प्रोजेक्ट क्रैश हो सकता है। इसलिए विशिष्ट संस्करण को फिक्स करना विश्वसनीयता का आधार है।

\n\n

पैकेज का विशिष्ट संस्करण कैसे स्थापित करें: तीन कार्यशील तरीके

\n\n

चलिए सीधे मुद्दे पर आते हैं। यहाँ तीन विश्वसनीय विधियाँ हैं जिनका आप प्रतिदिन उपयोग करेंगे।

\n\n

विधि 1: संस्करण निर्दिष्ट करने के साथ composer require कमांड

\n\n

सबसे सरल और तेज़ तरीका है कुंजी --with-dependencies का उपयोग करना और स्पष्ट रूप से संस्करण निर्दिष्ट करना:

\n\n
composer require "vendor/package:1.2.3" --with-dependencies
\n\n

लोकप्रिय पैकेज guzzlehttp/guzzle के लिए उदाहरण:

\n\n
composer require "guzzlehttp/guzzle:7.4.5" --with-dependencies
\n\n

क्या होता है? कम्पोज़र ठीक संस्करण 7.4.5 डाउनलोड करता है, उसकी निर्भरताएँ लाता है और composer.json और composer.lock को अपडेट करता है। बस। आप आश्चर्यों से सुरक्षित हैं।

\n\n

प्रदर्शन के लिए सुझाव: फ़्लैग --no-dev का उपयोग करें यदि पैकेज केवल प्रोडक्शन में आवश्यक है। इससे डाउनलोड की जाने वाली फ़ाइलों की संख्या कम हो जाएगी:

\n\n
composer require "guzzlehttp/guzzle:7.4.5" --no-dev
\n\n

विधि 2: composer.json का मैन्युअल संपादन

\n\n

यदि आप पहले से ही प्रोजेक्ट पर काम कर रहे हैं और संस्करण बदलना चाहते हैं, तो फ़ाइल composer.json खोलें और सटीक संस्करण लिखें:

\n\n
{\n    "require": {\n        "monolog/monolog": "2.8.0",\n        "guzzlehttp/guzzle": "7.4.5"\n    }\n}
\n\n

फिर निष्पादित करें:

\n\n
composer update vendor/package
\n\n

या सभी पैकेजों के लिए:

\n\n
composer install
\n\n

महत्वपूर्ण: यदि आप केवल एक पैकेज अपडेट कर रहे हैं, तो composer update vendor/package का उपयोग करें, न कि बिना पैरामीटर के composer update। अन्यथा कम्पोज़र सभी निर्भरताओं को अपडेट करेगा, जिससे अप्रत्याशित परिवर्तन हो सकते हैं।

\n\n

विधि 3: संस्करण उपनामों (aliases) का उपयोग

\n\n

कभी-कभी ऐसा संस्करण स्थापित करने की आवश्यकता होती है जो अभी तक टैग नहीं किया गया है, उदाहरण के लिए, dev-master शाखा से। इसके लिए उपनामों का उपयोग करें:

\n\n
composer require "vendor/package:dev-master#abc123"
\n\n

या composer.json में:

\n\n
{\n    "require": {\n        "vendor/package": "dev-master"\n    },\n    "repositories": [\n        {\n            "type": "vcs",\n            "url": "http                

ब्लॉग

पुस्तक अनुशंसाएँ