مدير الحزم البرمجية Composer

سابقاً كانت الحزم والمكتبات البرمجية (Packages) ، من أكثر الأشياء التي تجنب المبرمجين التعامل معها ، فحاولو الاكتفاء بما هو موجود من مكتبات مع كل لغة برمجة ، ولكن معظم لغات البرمجة ابتكرت أدوات لإدارة الحزم  البرمجية الخاصه بها فمثلاً :  CPAN للغة البرمجة PERL و Gems للغة البرمجة Ruby ,ولكن PHP  لم تقدم شيئ مفيد لمجتمعها الكبير وإنما اكتفت بامتلاكها تاريخ فظيع في مجال إدارة الحزم البرمجية . ولكن ليس بعد الأن ..

What-is-PHP-Composer-

ما هي الحزمة البرمجية ؟

الحزمة البرمجية هي عبارة عن مجموعة قطع برمجية (codes) يمكنك استخدامها في أي تطبيق , بحيث لا تحتاج لمعرفة كيف تعمل هذه القطعة البرمجية بداخلها ولكن يكيفيك أن تتعلم كيفية استخدامها .

ما هو مدير الحزم البرمجية ؟

هو تطبيق يسمح بتنزيل الحزم البرمجية من الويب أينما ما  توافرت ليسمح لك باستخدامها مباشرة في مشروعك

وكما توفر معظم هذه الأنظمة ما يسمى التبيعيات (dependencies) .

فمثلاً إذا كنت تريد استخام حزمة برمجية تسمى “D”  وهذه الحزمة تعتمد عل حزم أخرى مثل “B” , “C” لكي تعمل ، فسوف يقوم النظام بتحميل هذه الحزم و تنسيقها لتصبح جاهزة لاستخدام بمجرد أن تقوم بطلب الحزمة “D” .

PEAR لإدارة حزم PHP البرمجية

PHP  كلغة برمجة امتلكت سابقاً نظام حزم برمجية يسمى PEAR ولكنه لم يلقى النجاح والتقبل المطلوب لدى المبرمجين لعدة أسباب  منها عدم تشجيعه المبرمجين على المشاركة بأعمالهم البرمجية بسبب نظام التصويت الخاص به .مما جعل المبرمجين يفقدون الأمل من PEAR والبحث عن بديل

Composer (المؤلف) لإدارة حزم PHP البرمجية

مبرمجين مبدعين (Nils Adermann و Jordi Boggiano)  عملا معاً على مشروع ينهي معاناة المبرمجين مع PEAR  قاما بتسميته Composer يقوم هذا المشروع على إيجاد مستودع موحد لحزم PHP  البرمجية Packagist مستوحى من نظام NodeJS الشهير (NPM) لإدارة الحزم . بحيث يمكنك من البحث في مستودعه عن ألاف الحزم وتحميلها ويمكنك أيضاً من إضافة مشاريعك بسهولة, ومتابعة عدد التزيلات في اليوم والشهر والسنة وإمكانية تصفح إصدارات مشروعك ، والكثير من الميزات أيضاً.

تنصيب Composer

إن تنصيب Composer  بسيط جداً ومتوافر لجميع أنظمة التشغيل يمكنك تحميله من موقعهم الرسمي  وإذا كنت من مستخدمي نظام التشغيل ويندوز فيمكنك تحمليه مباشرة من هنا. 

سوف تحتاج أيضا إلى Git ، و إذا كنت ممن لم يسمع ب Git من قبل فلا تقلق ما زال يمكنك استخدام Composer دون الحاجة لتعلم Git فقط قم بتصيبه ، ولكني أنصحك بشدة أن تقوم بالبدء بتعلمه  فلم يفوت الأون بعد فيمكن تعلم كل شي عن Git  بلغة العربية .

بعد تنصيب كل شي قم بتنفيذ الأمر التالي لتأكد من أن كل شئ سار على ما يرام :

composer about

Composer - Package Management for PHP
Composer is a dependency manager tracking local
dependencies of your projects an d libraries.
See http://getcomposer.org/ for more information.

1 – بدء مشروع جديد

قم بإنشاء مجلد جديد بإي اسم تريده في أي مكان على جهاز الحاسوب الخاص بك ، ثم في ذلك المجلد أنشئ ملف  composer.json 

2 – فهم ملف composer.json

إذا كنت ممن يستخدمون NodeJS فلا بد أن تكون على دراية بملف package.json  وبالمثل composer  يستخدم ملف composer.json  لإدارة الإعدادت ومتطلبات الحزم البرمجية التي تريد استعمالها في مشروعك

في أغلب الحالات أن ملف composer.json  سوف يكون مشابه للتالي :

{
    "require": {
        "dg/ftp-deployment": "v2.1"
    }
}

السطر في الملف السابق يقوم بطلب الإصدار 2.1 من الحزمة البرمجية التي اسمها dg/ftp-deployment  هذه الحزمة تقوم بالنشرعلى الويب عن طريق بروتوكل نقل الملقات FTP .

3 – تنصيب الحزم

الأن بعد أن قمت بتحديد الحزم التي تحتاج إليها في مشروعك ، اطلب من composer  تجهيزها عن طريق الأمر التالي :

composer install

سوف تلاحظ أن composer  سيقوم بتحميل الملفات وضعها في مجلد اسمه vendors 

الأن يمكنك تنفيذ الأمر التالي للتأكد من أن الحزمة تم تنصيها بنجاح :

$ vendor/bin/deployment

FTP deployment v2.0
-------------------
Usage:
        deployment.php <config_file> [-t | --test]

Options:
        -t | --test      Run in test-mode.

الملخص

Composer أداة رائعة وسهلة الاستخدام و الغالبية الكبرى من مشاريع وبيئات عمل PHP الحديثة تسخدم composer لإدارة حزمها البرمجية ومن ضمنها (Zend2, Symfony2 , Laravel , Phing , …. ) وغيرها الكثير كبيديل لطرق التقليدية في إدارة الحزم البرمجية كنسخ واللصق التي لن تكون مقبولة أبداً في المستقبل القريب جداً.

 

حيان أبو فخر

مطور ويب سوري. عاشق للموسيقى والبرمجة والكوميديا الارتجالية.

مواضيع الكاتبموقع الكاتب

لمتابعة الكاتب:
TwitterFacebook

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *