Composer दस्तावेज़
- कंपोज़र दस्तावेज़
कंपोज़र एक निर्भरता प्रबंधन उपकरण है जो PHP में निर्भरताओं को प्रबंधित करने के लिए उपयोग किया जाता है। यह एक ऐसा उपकरण है जो आपको अपने प्रोजेक्ट में आवश्यक पुस्तकालयों (libraries) को स्थापित करने, अपडेट करने और हटाने की अनुमति देता है। कंपोज़र का उपयोग करने से आपके प्रोजेक्ट को व्यवस्थित और बनाए रखना आसान हो जाता है, और यह सुनिश्चित करता है कि आपके पास अपने प्रोजेक्ट के लिए आवश्यक सभी निर्भरताएं सही संस्करणों में हों। यह लेख शुरुआती लोगों के लिए कंपोज़र दस्तावेज़ों को समझने में मदद करेगा।
कंपोज़र क्या है?
कंपोज़र एक कमांड-लाइन टूल है। इसका मतलब है कि आप इसे अपने कंप्यूटर के टर्मिनल या कमांड प्रॉम्प्ट से उपयोग करते हैं। कंपोज़र आपके प्रोजेक्ट की निर्भरताओं को एक विशेष फ़ाइल में घोषित करने की अनुमति देता है, जिसे `composer.json` फ़ाइल कहा जाता है। यह फ़ाइल आपके प्रोजेक्ट के बारे में जानकारी संग्रहीत करती है, जैसे कि इसका नाम, संस्करण और निर्भरताएं।
कंपोज़र तब इन निर्भरताओं को स्वचालित रूप से डाउनलोड और स्थापित कर सकता है। यह आपके प्रोजेक्ट के लिए आवश्यक सभी फ़ाइलों को एक स्थानीय निर्देशिका में डाउनलोड करेगा, जिसे `vendor` फ़ोल्डर कहा जाता है।
कंपोज़र क्यों उपयोग करें?
कंपोज़र का उपयोग करने के कई फायदे हैं:
- **निर्भरता प्रबंधन:** कंपोज़र आपके प्रोजेक्ट की निर्भरताओं को स्वचालित रूप से प्रबंधित करता है, जिससे आपको उन्हें मैन्युअल रूप से डाउनलोड और स्थापित करने की आवश्यकता नहीं होती है।
- **संस्करण नियंत्रण:** कंपोज़र आपको अपनी निर्भरताओं के विशिष्ट संस्करणों को निर्दिष्ट करने की अनुमति देता है, जिससे यह सुनिश्चित होता है कि आपका प्रोजेक्ट हमेशा संगत रहेगा।
- **पुन: प्रयोज्यता:** कंपोज़र आपको अपनी निर्भरताओं को अन्य प्रोजेक्ट्स में पुन: उपयोग करने की अनुमति देता है।
- **सरलता:** कंपोज़र का उपयोग करना अपेक्षाकृत आसान है, और इसके लिए बहुत कम सीखने की आवश्यकता होती है।
- स्वचालित लोडिंग: कंपोज़र ऑटोलोडर उत्पन्न करता है, जो आपके प्रोजेक्ट में निर्भरता फ़ाइलों को स्वचालित रूप से लोड करता है।
कंपोज़र स्थापित करना
कंपोज़र को स्थापित करने के कई तरीके हैं। सबसे आसान तरीका है कंपोज़र की आधिकारिक वेबसाइट ([1](https://getcomposer.org/)) से इंस्टॉलर डाउनलोड करना और उसे चलाना। इंस्टॉलर आपके ऑपरेटिंग सिस्टम के लिए कंपोज़र को डाउनलोड और स्थापित करेगा।
वैकल्पिक रूप से, आप कमांड लाइन का उपयोग करके कंपोज़र को स्थापित कर सकते हैं। उदाहरण के लिए, लिनक्स या मैक ओएस पर, आप निम्नलिखित कमांड चला सकते हैं:
```bash curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer chmod +x /usr/local/bin/composer ```
विंडोज पर, आप निम्नलिखित कमांड चला सकते हैं:
```powershell Invoke-WebRequest -Uri https://getcomposer.org/installer -OutFile composer-setup.php php composer-setup.php ```
स्थापना के बाद, आप `composer --version` कमांड चलाकर कंपोज़र की स्थापना को सत्यापित कर सकते हैं।
composer.json फ़ाइल
`composer.json` फ़ाइल आपके कंपोज़र प्रोजेक्ट की नींव है। यह फ़ाइल आपके प्रोजेक्ट के बारे में जानकारी संग्रहीत करती है, जैसे कि इसका नाम, संस्करण, विवरण, लेखक और निर्भरताएं।
यहाँ एक `composer.json` फ़ाइल का एक उदाहरण दिया गया है:
```json {
"name": "example/my-project", "description": "My awesome project", "require": { "monolog/monolog": "1.0.*" }, "autoload": { "psr-4": { "Example\\MyProject\\": "src/" } }
} ```
इस उदाहरण में, `name` फ़ील्ड प्रोजेक्ट का नाम निर्दिष्ट करता है। `description` फ़ील्ड प्रोजेक्ट का विवरण निर्दिष्ट करता है। `require` फ़ील्ड उन निर्भरताओं को निर्दिष्ट करता है जिन्हें प्रोजेक्ट के लिए आवश्यक है। इस मामले में, प्रोजेक्ट को `monolog/monolog` लाइब्रेरी के संस्करण 1.0 या उच्चतर की आवश्यकता है। `autoload` फ़ील्ड कंपोज़र को बताता है कि प्रोजेक्ट की फ़ाइलों को कैसे लोड किया जाए।
कंपोज़र कमांड्स
कंपोज़र कई कमांड प्रदान करता है जिनका उपयोग आप अपने प्रोजेक्ट को प्रबंधित करने के लिए कर सकते हैं। यहाँ कुछ सबसे सामान्य कमांड दिए गए हैं:
- `composer install`: यह कमांड आपके प्रोजेक्ट की `composer.lock` फ़ाइल में सूचीबद्ध निर्भरताओं को स्थापित करता है। यदि `composer.lock` फ़ाइल मौजूद नहीं है, तो कंपोज़र `composer.json` फ़ाइल में निर्दिष्ट निर्भरताओं को स्थापित करेगा और एक `composer.lock` फ़ाइल बनाएगा। इंस्टॉलेशन प्रक्रिया
- `composer update`: यह कमांड आपके प्रोजेक्ट की `composer.json` फ़ाइल में निर्दिष्ट निर्भरताओं के नवीनतम संस्करणों को स्थापित करता है। यह `composer.lock` फ़ाइल को भी अपडेट करेगा। अपडेट प्रक्रिया
- `composer require`: यह कमांड आपके प्रोजेक्ट में एक नई निर्भरता जोड़ता है। यह `composer.json` फ़ाइल और `composer.lock` फ़ाइल दोनों को अपडेट करेगा। निर्भरता जोड़ना
- `composer remove`: यह कमांड आपके प्रोजेक्ट से एक निर्भरता को हटाता है। यह `composer.json` फ़ाइल और `composer.lock` फ़ाइल दोनों को अपडेट करेगा। निर्भरता हटाना
- `composer dump-autoload`: यह कमांड ऑटोलोडर को पुन: उत्पन्न करता है। यह तब उपयोगी होता है जब आप अपनी प्रोजेक्ट फ़ाइलों को बदलते हैं या नई निर्भरताएं जोड़ते हैं। ऑटोलोडर पुन: उत्पन्न करना
- `composer show`: यह कमांड आपके प्रोजेक्ट में स्थापित सभी निर्भरताओं को सूचीबद्ध करता है। निर्भरता सूची
निर्भरता संस्करण
कंपोज़र आपको अपनी निर्भरताओं के विशिष्ट संस्करणों को निर्दिष्ट करने की अनुमति देता है। आप विभिन्न प्रकार के संस्करण बाधाओं का उपयोग कर सकते हैं, जैसे कि:
- `*`: किसी भी संस्करण को निर्दिष्ट करता है।
- `1.0.*`: 1.0 से शुरू होने वाले किसी भी संस्करण को निर्दिष्ट करता है।
- `^1.0.0`: 1.0.0 से शुरू होने वाले किसी भी संस्करण को निर्दिष्ट करता है जो 2.0.0 से कम है।
- `~1.0.0`: 1.0.0 के समान संस्करण को निर्दिष्ट करता है, लेकिन पैच संस्करणों को अपडेट करने की अनुमति देता है।
- `1.0.0`: विशिष्ट संस्करण को निर्दिष्ट करता है।
आप संस्करण बाधाओं का उपयोग करके अपनी निर्भरताओं के संगत संस्करणों को निर्दिष्ट कर सकते हैं। यह सुनिश्चित करता है कि आपका प्रोजेक्ट हमेशा संगत रहेगा।
ऑटोलोडिंग
कंपोज़र एक ऑटोलोडर उत्पन्न करता है जो आपके प्रोजेक्ट में निर्भरता फ़ाइलों को स्वचालित रूप से लोड करता है। यह आपको अपनी फ़ाइलों में `require` या `include` स्टेटमेंट का उपयोग करने की आवश्यकता के बिना निर्भरता कक्षाओं का उपयोग करने की अनुमति देता है।
ऑटोलोडर को पुन: उत्पन्न करने के लिए, आप `composer dump-autoload` कमांड चला सकते हैं।
कंपोज़र लॉक फ़ाइल (composer.lock)
`composer.lock` फ़ाइल आपके प्रोजेक्ट की निर्भरताओं के सटीक संस्करणों को संग्रहीत करती है। यह फ़ाइल सुनिश्चित करती है कि आपके प्रोजेक्ट के सभी डेवलपर्स एक ही संस्करणों का उपयोग कर रहे हैं, जिससे संगतता संबंधी समस्याएं कम हो जाती हैं।
जब आप `composer install` कमांड चलाते हैं, तो कंपोज़र `composer.lock` फ़ाइल में सूचीबद्ध निर्भरताओं को स्थापित करेगा। यदि `composer.lock` फ़ाइल मौजूद नहीं है, तो कंपोज़र `composer.json` फ़ाइल में निर्दिष्ट निर्भरताओं को स्थापित करेगा और एक `composer.lock` फ़ाइल बनाएगा।
`composer.lock` फ़ाइल को अपने वर्जन कंट्रोल सिस्टम (जैसे Git) में कमिट करना महत्वपूर्ण है।
उन्नत कंपोज़र अवधारणाएं
- **प्लेटफ़ॉर्म आवश्यकताएँ:** आप अपनी `composer.json` फ़ाइल में प्लेटफ़ॉर्म आवश्यकताएँ निर्दिष्ट कर सकते हैं, जैसे कि PHP का न्यूनतम संस्करण।
- **स्क्रिप्ट:** आप अपनी `composer.json` फ़ाइल में स्क्रिप्ट परिभाषित कर सकते हैं जिन्हें कंपोज़र द्वारा चलाया जा सकता है।
- **रिपॉजिटरी:** आप कंपोज़र को कस्टम रिपॉजिटरी से निर्भरताएं स्थापित करने के लिए कॉन्फ़िगर कर सकते हैं।
- **पैकेज प्रकार:** कंपोज़र विभिन्न प्रकार के पैकेजों का समर्थन करता है, जैसे कि लाइब्रेरी, प्लगइन और थीम।
- पैकेज प्रबंधन: कंपोज़र का उपयोग करके पैकेजों को प्रबंधित करना।
- कोड गुणवत्ता: कंपोज़र के साथ कोड गुणवत्ता सुनिश्चित करना।
- सुरक्षा: कंपोज़र के साथ सुरक्षा कमजोरियों को संबोधित करना।
उपयोगी संसाधन
- कंपोज़र आधिकारिक वेबसाइट: [2](https://getcomposer.org/)
- कंपोज़र दस्तावेज़: [3](https://getcomposer.org/doc/)
- कंपोज़र ट्यूटोरियल: [4](https://www.tutorialspoint.com/composer/index.htm)
निष्कर्ष
कंपोज़र एक शक्तिशाली उपकरण है जो आपके PHP प्रोजेक्ट की निर्भरताओं को प्रबंधित करने में आपकी मदद कर सकता है। यह आपके प्रोजेक्ट को व्यवस्थित और बनाए रखना आसान बनाता है, और यह सुनिश्चित करता है कि आपके पास अपने प्रोजेक्ट के लिए आवश्यक सभी निर्भरताएं सही संस्करणों में हों।
यह लेख कंपोज़र के मूल सिद्धांतों का परिचय प्रदान करता है। अधिक जानकारी के लिए, कृपया कंपोज़र की आधिकारिक वेबसाइट और दस्तावेज़ देखें।
PHP निर्भरता प्रबंधन सॉफ्टवेयर निर्भरता कमांड लाइन इंटरफेस JSON संस्करण नियंत्रण ऑटोलोडर पैकेज प्रबंधन सॉफ्टवेयर विकास PHP फ्रेमवर्क कोड रिपॉजिटरी Git सॉफ्टवेयर इंस्टॉलेशन सॉफ्टवेयर अपडेट सुरक्षा विश्लेषण कोड गुणवत्ता विश्लेषण बाइनरी ऑप्शन ट्रेडिंग तकनीकी विश्लेषण वॉल्यूम विश्लेषण जोखिम प्रबंधन
अभी ट्रेडिंग शुरू करें
IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)
हमारे समुदाय में शामिल हों
हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री