Composer एक dependency manager tool है जो की PHP के project में dependency को manage करने का कार्य करता है that means जितने भी उस project में third-party libraries use हुवे हैं उनको install, update, और configure करने का कार्य करता है|

जिन्होंने programming language में command line के through ज्यादा कार्य नहीं किया है उनको composer को समझने में थोडा मुश्किल होगा लेकिन बाद में यही चीज बहुत आसान हो जाएगी| हर beginners के मन में एक सवाल होता है की अगर composer का use न करके हम direct library को download करके use करें तो उससे नुकसान क्या है? हम ये सारे topic पर बात करेंगे|

PHP में composer क्या है?

Composer एक tool है जिसका इस्तेमाल करके PHP programming language में बने हुए project के dependencies को manage करने का कार्य करते हैं जैसे की third-party libraries को install या update करना|

जब भी हम बड़े project पर काम करते हैं तो हमें कुछ ऐसे third-party libraries (जो की किसी और के द्वारा पहले से बना हुआ हो) की आवश्यकता पड़ती है जिसके मदद से हम अपने development को fast और easy बना सकते हैं|

चलिए live example के साथ समझते हैं: जिस प्रकार हम घर बनाते हैं तो हमें raw materials की आवश्यकता पडती है जैसे की ईंट (Bricks), छड़ (Rod / Bar) etc. तो यहाँ पर ईंट पहले से किसी के द्वारा बनाया गया होता है क्योंकि इसे हम खुद भी बना सकते हैं लेकिन उसके लिए हमें experience और time चाहिए| अब हम time बचाने के लिए पहले से बने बनाये हुए ईंट का इस्तेमाल करते हैं जो की हमारे कार्य को आसान और fast बना देता है और दूसरी बात रही experience की तो अगर आप पहली बात ईंट बनायेंगे तो हो सकता है की ईंट मजबूत ना बने|

ठीक इसी प्रकार जब भी हम web application या किसी भी प्रकार का application बनाते हैं तो हमें कई सारी ऐसी functionality की आवश्यकता पडती है जिसे बनाने में काफी time लगेगा और इससे बचने के लिए हम third-party libraries का इस्तेमाल करते हैं क्योंकि वो किसी experienced developer के द्वारा बनाया हुआ होता है जो की बिल्कुल परफेक्ट होता है|

Composer की आवश्यकता क्यों होती है?

कुछ लोग जो software development के field में नए होते हैं उन्हें लगता है की डायरेक्ट कोई भी चीज download करो और implement कर दो जो की उनको आसान लगता है लेकिन इससे भी आसान बहुत सारी चीजे है जिसे आपको जानना जरुरी है|

Composer की आवश्यकता हमें third-party library को install और update करने के लिए होती है| जिस प्रकार हम ईंट लाने के लिए गाड़ी का प्रयोग करते हैं ठीक उसी प्रकार composer भी कार्य करता है|

Composer एक जगह से library को उठाता है और इन्टरनेट के माध्यम से आपके project में उसको copy करके configure कर देता है| जिसके बाद आप उस library के features को अपने project में इस्तेमाल कर सकते हैं|

अगर यही कार्य आप direct download करके करते तो आपको अलग अलग file में changes करने पड़ते जो की आपको शायद पता भी ना हो और manually change करने के कारण शायद आपका project down हो जाये इसलिए हम composer का इस्तेमाल करते हैं जो की dependent library को install करके configure भी कर देता है|

अब सवाल उठता है की composer library को कहाँ से लाता होगा?

PHP के सारे packages (libraries) एक जगह पर online store होते हैं जिस प्रकार आपके मोबाइल के लिए app अलग अलग play store पर available होते हैं ठीक उसी प्रकार PHP के लिए libraries भी online एक store पर store होते हैं जहाँ से आप उसको download कर सकते हैं या फिर कह सकते हैं की जहाँ से composer उसको download करता है| उस store का नाम है Packagist

आप Packagist के website पर जाकर के PHP के सारे available packages को देख सकते हैं और उसे कैसे use करना है उसे भी देख सकते हैं|

Composer कैसे install करें?

Composer install करने से पहले आपके system में PHP install होना जरुरी है क्योंकि जब आप composer install करेंगे तो आपको PHP का path देना पड़ता है|

Step 1: सबसे पहले आप composer के official website पर जाएँ और वहाँ से composer का installation file download कर लें| यहाँ पर मैं windows operating system में install करने का तरीका बता रहा हूँ क्योंकि ज्यादातर लोग Windows operating system का ही इस्तेमाल करते हैं| अगर आप Linux या MAC user हैं तो आपके लिए composer के ऑफिसियल website पर command दिया गया है जिसे follow करके आप composer install कर सकते हैं|

Step 2: आपको composer के official website पर download का option दिखेगा जहाँ पर click करके download page पर जाएँ|

Step 3: अब composer-setup.exe पर click करके installation file download कर ले|

Step 4: जब file download हो जायेगा उसके बाद उस पर double click करके install करें|

Step 5: अब आपको Install for all Users (Recommendation) select करना है ताकि उस computer में सभी users के लिए composer available हो जाये|

Step 6: अब आपको confirmation के लिए Yes select करना है उसके बाद जो box open होगा उसमें Next पर click करना है| कुछ लोग सलाह देते हैं developer option को check करने के लिए लेकिन अगर आप उसे check कर देंगे तो आपको uninstaller नहीं मिलेगा जिसके कारण आप composer को uninstall नहीं कर सकते हैं इसलिए इसे uncheck ही रहने दें|

developer option

Step 7: अब आपको PHP का path select करना होगा by default ये PHP का installed path pick कर लेता है लेकिन अगर आपके system में PHP का path pick नहीं कर रहा है तो आपको उसे browse पर click करके PHP का path select करना होगा| ध्यान रखें की जहाँ पर PHP install किया है आपने वहीँ से path select करें| जैसा की image में आप देख सकते हैं|

Composer PHP path setup
Composer PHP path setup

Step 8: अब उसके बाद Next, Install और Finish पर एक एक करके click करना है जिसके बाद आपके system में composer install हो जायेगा|

कैसे check करें system में composer install है या नहीं?

ऊपर दिए गए steps के द्वारा आप composer install कर सकते हैं लेकिन composer install होने के बाद आप ये कैसे पता लगायेंगे की आपके system में composer सही से install हुआ है या नहीं या फिर composer install करने से पहले ये कैसे पता लगायेंगे की आपके system में composer पहले से install है| तो चलिए मैं आपको composer check करने का तरीका बताता हूँ|

  • सबसे पहले command prompt open कर लें|
  • उसके बाद composer लिख कर के enter प्रेस करें|
  • अगर आपके system में composer install होगा तो बड़ा बड़ा अक्षर में composer लिखा आ जायेगा जैसा की आप image में देख सकते हैं और अगर composer installed नहीं होगा तो कुछ इस प्रकार का message show होगा| Composer is not recognized as an internal or external command

Important Points:

जब भी आप composer के द्वारा किसी भी प्रकार की library को install या update करते हैं तो उसके लिए composer.json file का होना बहुत ही जरुरी है| composer.json file में कुछ इस प्रकार के code लिखे गए होते हैं:

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

इसमें require keyword बताता है की इस project में ये सभी प्रकार के libraries की जरुरत है that means इन सभी libraries के ऊपर ये project dependent है| जैसे ऊपर दिए गए code में आप देख सकते हैं की मैंने monolog library को include किया है जिसका version 1.0.* हो सकता है यहाँ पर * के जगह 1, 2, 3 कोई भी version हो सकता है|

अब जैसे ही composer install command execute करेंगे तो वह composer.json file में जायेगा और require object में added सभी library को हमारे project के अन्दर vendor folder के अन्दर install ( या कह सकते हैं include) कर देगा और साथ ही साथ composer.lock नाम का file भी create करेगा जिसमें ये install हुए library के पूरे details available होते हैं|

कभी कभी interview में पूछे जाते हैं की क्या हमें composer.lock file को भी source code के साथ GIT में अपलोड करना चाहिए| इसका जवाब है हाँ क्योंकि इसमें dependent library के details होते हैं जो की हमें composer install command चलाने में help करते हैं| आप इसे server पर भी अपलोड कर सकते हैं|

composer install और composer update में क्या difference है?

जब भी हम अपने project को किसी दूसरे server पर अपलोड करते हैं तो हमें composer install या composer update command चलाने की जरुरत पड़ती है जिससे जितने भी dependent library हैं वो install हो जाते हैं लेकिन यहाँ पर कुछ लोग confuse कर जाते हैं की दोनों में क्या difference है|

जब मैं PHP में composer का इस्तेमाल पहली बार कर रहा था और कंपनी के project में मैंने गलती से बिना knowledge के composer update command चला दिया था जिसके कारण मेरे GIT repository में बहुत सारे updated files दिखने लगे थे और मैं टेंशन में आ गया था लेकिन अब आपको tension लेने की जरुरत नहीं है मैं आपको दोनों का difference बताता हूँ|

सबसे पहले हम composer update के बारे में जानेंगे| composer update command कुछ इस प्रकार से काम करता है:

  • सबसे पहले composer.json को read करता है|
  • उसके बाद जो required library नहीं है लेकिन फिर भी vendor folder में available हैं उनको delete कर देता है जैसे की अगर आपने composer.json से कुछ library remove कर दिए हैं तो वह उनको remove कर देता है|
  • उसके बाद जो installed library हैं उनके latest version को install कर देता है| (यह केवल * के साथ ही होता है अगर मान लीजिये आपने version 1.2.3 specify किया है तो वह इसी version को install रखेगा इसको update नहीं करेगा)
  • उसके बाद composer.lock file regenerate कर देगा|

अब हम समझते हैं composer install command का इस्तेमाल:

  • सबसे पहले composer.json को read करता है|
  • उसके बाद composer.lock file को check करता है अगर वह file मिल जाता है तो उसी के हिसाब से libraries को install कर देता है और अगर वह file नहीं मिलता है तो वह internally composer update command execute कर लेता है|

हमें कभी भी composer update command नहीं चलाना चाहिए लेकिन आप कभी version अपग्रेड करते हैं तो आप composer update command को चला सकते हैं|

composer update command हमें जल्दी इसलिए नहीं चलाना चाहिए क्योंकि यह बहुत सारे नए functionality को add कर देता है जिससे हमारा project break हो सकता है|

Conclusion and Final Words

Composer एक best tool है जो की library को manage करने का काम करता है यह सिर्फ PHP के लिए ही available होता है| दूसरे programming और scripting language के लिए अलग अलग टूल्स मौजूद हैं जैसे की node JS के लिए npm और python के लिए PIP.

शुरुआत में आपको command का इस्तेमाल करना थोडा मुश्किल लग सकता है लेकिन बाद में यही चीज आपको इतना आसान लगेगा की आप फिर command के आदि हो जायेंगे| PHP में composer का इस्तेमाल करके आप अपने project के लाइब्रेरीज को बहुत ही आसानी से manage कर सकते हैं|

मेरा एक सुझाव है की आप कभी भी live project में composer चलायें तो उससे पहले आप 100% sure हो जाये की आप जो command चलाने जा रहे हैं वो सही है अन्यथा आपका project break हो सकता है|

LEAVE A REPLY

Please enter your comment!
Please enter your name here