إذا سبق لك أن كتبت أي شيء في PHP من قبل ، فمن المحتمل أنك وجدت أنه يجب عليك إعادة اختراع العجلة في أي وقت تريد القيام بمهمة شائعة مثل نظام تسجيل الدخول أو إدارة قاعدة البيانات مثلاً , لدى PHP الآن حفنة من الأطر الناضجة التي حلت كل هذه المشاكل بالفعل ، فهل سيكون منطقي أكثر ان تكمل من حيث انتهى الآخرون ؟ ام تجد انه عليك اعادة كتابة الكود بنفس المميزات مرة أخرى ؟
ان كنت ترى ان الاجابة هي كتابة كودك الخاص فربما تجد ان هذا الأمر صحيح في البداية , لكن سرعان ما تبدأ الأمور في الخروج عن السيطرة مع زيادة حجم المشروع الذي تعمل عليه يوماً بعد يوم , وما يزيد خطوة الأمور هو توسع فريق العمل وزيادة عدد الأشخاص العاملين معك على نفس المشروع , تذكر أن لكل مبرمج طريقته الخاصة في كتابة أي كود وهذا الأمر يزيد صعوبة التنسيق بين أعضاء الفريق وبالتالي الدخول في دوامة لا نهاية لها من التعديلات و الأخطاء , وهذا ما يسمى حسب اعتقادي الشخصي أسوا كوابيس اي مبرمج في العالم.
كومبوزر هو مدير حزم للغة PHP , ما يقوم به كومبوزر هو تجميع جميع الحزم التي تحتاجها وادارتها من مكان واحد , مما يسهل عليك عملية التطوير وخاصة عملية التطوير المشترك بين أعضاء فريق عمل.
وعملية ادارة الحزم التي يقوم بها كومبوزر ليست بمفهوم جديد في عالم البرمجة , في واقع الأمر الكثير من خدمات كومبوزر مستوحاة من npm التابع ل Node.js و Bundler التابع ل Ruby.
ربما سمعت سابقاً عن مدير حزم php المسمى PEAR المعمول به منذ سنوات عديدة , تخلى العديد من مبرمجي PHP عن PEAR لمشاكل كثيرة نذكر منها:
يعد تنصيب كومبوزر مهمة سهلة للغاية , فيمكنك القيام بكل العمل الصعب من سطر الأوامر ببساطة كما يتوفر حزم تثبيت جاهزة لبعض أنظمة التشغيل
التنصيب من خلال ملف تنصيب (exe)
لتنصيب كومبوزر على ويندور كل ما عليك هو الذهاب للموقع الرسمي : https://getcomposer.org/ وتنزيل حزمة التنصيب من الموقع الرسمي وتنصيبها كأي برنامج عادي...
التنصيب من خلال سطر الأوامر (Terminal , CMD)
$ curl -s https://getcomposer.org/installer | php
يمكنك هذا السطر من تنزيل ملف composer.phar
$ sudo mv composer.phar /usr/local/bin/composer
وفي هذا السطر , نقوم بنقل الملف لمسار bin لكي يتم تعميمه على النظام كاملاً , ولاحظ ان المسارات الظاهرة تعتمد على بنية أنظمة Linux , Unix كما يشترك Mac في بعض المعلومات السابقة .
$ composer
هذا الأمر سيقوم بتنصيب كومبوزر في نظام تشغيلك , بعد ذلك يمكنك بسهولة العمل على كومبوزر وتحديث الحزم او اضافتها الى مشروع معين لديك.
لنقل ان لدينا مشروع , ونريد اضافة حزم اليه وحفظها في ملفات المشروع , اولاً قم بانشاء مجلد جديد لمشروعك واحفظه اينما كان المسار الذي يناسبك , ومن ثم عليك بفتح سطر الأوامر والانتقال الى مشروع
$ cd PATH/TO/YOUR/PROJECT
للتأكد من أنك في المجلد الصحيح , جرب كتابة الأمر التالي
$ pwd
/var/www/html/projectFolder
يظهر لك انك ضمن مجلد المشروع الصحيح , والان نبدأ بتجهيز كومبوزر ضمن المشروع
قم بانشاء ملف جديد وسميه composer.json يمكنك عمل ذلك من خلال سطر الأوامر او من مستكشف الملفات
ولنجرب اضافة الكود التالي اليه :
{
"require": {
"monolog/monolog": "1.0.*"
}
}
قم بحفظ الملف و اغلاقه , والان نعود لسطر الأوامر ونكتب :
$ composer install
ستبدا الان عملية تنصيب الحزم , قد يأخذ الأمر بعض الوقت لتنزيل الحزم وتنصيبها ضمن مشروعك !
يزخر الانترنت بكم هائل من الحزم التابعة للغة PHP يمكن تنصيبها باستخدام كومبوزر , فعلياً اي مشروع مفتوح المصدر على جيتهاب تابع للغة php ستجد فيه طريقة تثبيت حزمة له , يوجد أيضاً موقع باكاجيست Packagist : https://packagist.org/ يوفر كم كبير من الحزم للغة php يمكن تنصيبها عبر كومبوزر , الاحتمالات لا تنتهي هنا ومن المؤكد أنك ستجد حزمتك المنشودة!
وطريقة تنصيب حزمة تبدو في أغلب الأوقات عبر الكود التالي:
composer require PACKGEAUTHOR/NAME
وستجد أن مبرمج الحزمة هو من يوفر لك الأمر السابق دائماً , كما يمكنك نسخ اسم الحزمة ووضعك في ملف composer.json ثم تحديث المشروع عبر أمر
composer update
تظهر قيمة كومبوزر الحقيقية عند العمل المشترك , فكل ما على زميلك في فريق التطوير هو ارسال ملف compser.json لك , وبضغطة زر يصبح لديك نفس بيئة العمل الموجودة عنده وتختصر على نفسك كمية مشاكل كبيرة ووقت انت بحاجته للتطوير وليس لحل المشاكل .
ادارة الحزم هي الطريقة الصحيحة دائماً في العمل مع لغات البرمجة , وقد أثبتت لغة Ruby هذه المعتقد وصحته عن طريق برامج ادارة الحزم الرائعة لديها , حيث يمكنك الاستمرار في التطوير وبناء تطبيق عظيم بدلاً من اعادة اختراع العجلة يوماً بعد يوم
ونجد الكثير من اطر العمل الشهير قد وضعت نفسها طوع استخدام كومبوزر ومن اهمها اطار العمل الشهير لارافل Laravel
وكمبرمج php محترف , سيصبح كومبوزر احد اهم اصدقائك اليوميين , وباتباعنا هذه الطرق السليمة يمكننا جعل مجتمع مبرمجي php افضل واكثر مرونة للاستخدام والتعلم , فلا يوجد اي سبب يمنعك من البدء في استخدام كومبوزر اليوم !