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

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

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

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

Composer: PHP में निर्भरता प्रबंधन की कला

\n\n

कल्पना करें कि आप एक आर्किटेक्ट हैं, जो एक गगनचुंबी इमारत बना रहा है। आप हर ईंट और हर बीम खुद नहीं बना सकते। आप तैयार, परीक्षित सामग्री मंगवाते हैं। PHP की दुनिया में, यह भूमिका शानदार ढंग से Composer निभाता है — एक निर्भरता प्रबंधक जो हमारी दुनिया में व्यवस्था, वर्जनिंग और हर बार पहिया को फिर से न खोजने की सुविधा लेकर आया।

\n\n

लेकिन क्या करें यदि लाइब्रेरी का नवीनतम संस्करण आपके कोड को "तोड़" दे? या आपको पक्का पता है कि संस्करण 2.1.5 के साथ सब कुछ पूरी तरह से काम कर रहा था, लेकिन 2.2.0 में बग आ गए जो अभी तक ठीक नहीं हुए हैं? इस लेख में, हम सिर्फ Stack Overflow के लोकप्रिय प्रश्न का उत्तर नहीं देंगे: "How to install a specific version of package using Composer?"। हम इस प्रक्रिया को पूरी तरह से समझेंगे, साथ ही आपके प्रोजेक्ट के अनुकूलन और प्रदर्शन को बढ़ाने का जादू भी जोड़ेंगे।

\n\n

अपना टर्मिनल तैयार करें, हम शुरू कर रहे हैं!

\n\n

संस्करण फिक्स करना कोई सनक नहीं, बल्कि एक आवश्यकता क्यों है?

\n\n

कई डेवलपर्स, विशेषकर शुरुआती, एक ही गलती करते हैं: वे संस्करण निर्दिष्ट किए बिना composer require vendor/package लिखते हैं। इस मामले में Composer आसानी से नवीनतम स्थिर संस्करण ला देता है। इसमें बुराई क्या है? बात सीधी है: आज लाइब्रेरी काम करती है, और कल इसका लेखक एक बड़ा अपडेट जारी करता है जिसमें ऐसे बदलाव होते हैं जो आपके कोड को पूरी तरह से तोड़ देते हैं। डिबगिंग के नरक में आपका स्वागत है!

\n\n

संस्करण फिक्स करना (pinning) आपकी बीमा पॉलिसी है। आप स्पष्ट रूप से कहते हैं: "Composer, मुझे बिल्कुल यही संस्करण स्थापित करो, और मेरी जानकारी के बिना इसे छूने की कोशिश मत करो।" यह सीधे तौर पर विकास की स्थिरता और प्रदर्शन को प्रभावित करता है, क्योंकि आप कोड लिखने में समय बिताते हैं, न कि अपडेट के आश्चर्यों को सुलझाने में।

\n\n

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

\n\n

आइए व्यवहार में आते हैं। हमारे पास तीन मुख्य परिदृश्य हैं, और प्रत्येक के लिए एक अलग कमांडर तरीका है।

\n\n

तरीका 1: composer require के माध्यम से "एक्सप्रेस इंस्टॉलेशन"

\n\n

सबसे तेज़ और लोकप्रिय तरीका। आप बस पैकेज के नाम में कोलन के माध्यम से वांछित संस्करण जोड़ते हैं।

\n\n

सिंटैक्स:

\n
composer require vendor/package:version
\n\n

वास्तविक उदाहरण: मान लीजिए आपको Monolog संस्करण 2.3.5 चाहिए (नवीनतम 3.x नहीं, जिसने API बदल दिया है)।

\n
composer require monolog/monolog:2.3.5
\n\n

हुड के नीचे क्या होता है? Composer:

\n
    \n
  • जाँच करता है कि पहले से स्थापित पैकेजों के साथ कोई विरोध तो नहीं है।
  • \n
  • composer.json में एक प्रविष्टि जोड़ता है।
  • \n
  • ठीक उसी संस्करण को डाउनलोड करता है और composer.lock को अपडेट करता है।
  • \n
\n\n

महत्वपूर्ण! यदि आप एक ऐसा पैकेज स्थापित करना चाहते हैं जो पहले से मौजूद है, लेकिन दूसरे संस्करण का, तो अनुकूलन के लिए --no-update फ्लैग का उपयोग करें:

\n
composer require monolog/monolog:2.3.5 --no-update\ncomposer update monolog/monolog
\n

यह दृष्टिकोण Composer पर लोड कम करता है और प्रक्रिया को गति देता है, क्योंकि यह सभी निर्भरताओं की पुनर्गणना नहीं करेगा, बल्कि केवल आवश्यक पैकेज पर ध्यान केंद्रित करेगा।

\n\n

तरीका 2: composer.json के माध्यम से "मैन्युअल प्रबंधन"

\n\n

यह तरीका तब बेहतर है जब आप एक टीम में काम कर रहे हों या किसी प्रोजेक्ट को शुरू से सेट कर रहे हों। आप composer.json फ़ाइल खोलते हैं और मैन्युअल रूप से निर्भरताएँ लिखते हैं।

\n\n

"require" सेक्शन ढूंढें और लाइन जोड़ें:

\n
{\n    "require": {\n        "php": "^8.1",\n        "monolog/monolog": "2.3.5",\n        "guzzlehttp/guzzle": "7.4.*"\n    }\n}
\n\n

फ़ाइल संपादित करने के बाद, कमांड चलाएँ:

\n
composer update
\n\n

यह तरीका आपको पूर्ण नियंत्रण देता है। संस्करण मास्क पर ध्यान दें:

\n
    \n
  • 2.3.5 — बिल्कुल सटीक संस्करण।
  • \n
  • 7.4.* — माइनर रिलीज़ 7.4 के अंतर्गत कोई भी संस्करण (7.4.0, 7.4.1
  • \n

ब्लॉग

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