1. تعريف ببعض أدوات مبرمج PHP
في عالم البرمجيات الحرة المفتوحة المصدر
م. خالد الشمعة
2. نقاط هذا العرض التقديمي
مشروع PHPواللغة العربية •
نظام CVSلحفظ وإدارة الشيفرة المصدرية •
نظام PHPUnitsلمتمتة عمليات الفحص والتختبار •
نظام PHPDocumentorلمتمتة عملية متوثيق الشيفرة •
المصدرية
تخلصة ومتوصيات •
3. مشروع PHPواللغة العربية
• مكتبة مفتوحئة المصئدر متتضمن مجموعئة من الوظائئف الخاصة
باللغئة العربيئة منهئا علئى سئبيل المثال ل الحصئر: البحئث بدللة
ساق الكلمة والتلخيص اللي ومتحويل ما بين التأريخين الهجري
والميلدي والترجمة اللفظية ما بين الكلمات العربية والنجليزية.
لللطلع على المزيد: http://www.ar-php.org
• 7002-6002 البناء البرمجي والنشر على phpclasses.org
• 8002 :PHP5، sourceforge.orgمتحسين الداء ،
PEAR
4. شروط النضمام إلى PEAR
• ضرورة حفظ وإدارة الشيفرة المصدرية على مخدم CVSمتاح
على شبكة الويب )(Sourceforge.net
• ضرورة إلحاق برنامج يقوم باتختبار كافة مزايا وتخدمات المكتبة
بشكل آلي مؤمتمت )(PHPUnit
• ضرورة متوفير متوثيق معياري للشيفرة المصدرية الخاصة
بالمكتبة المراد إضافتها )(phpDocumentor
6. ما هو نظام CVS؟
• نظام الصئئدارات المتزامنئئة CVSلحفظ الشيفرة
المصئدرية هئو نظام مجانئي مفتوح المصئدر قائئم على
هيكلية المخدم / الزبون.
• يستخدم هذا النظام آلية الدمج للتعديلت التي يجريها عدة
مطوريئن، بعكئس نموذج القفئل الذي يسئمح لمطور واحد
فقط بإجراء التعديلت في كل مرة.
7. نظام CVSوالمشاريع المفتوحة المصدر
• إن كنت مبرمجا متطمح للمساهمة يوما ما في أي مشروع
برمجئي مفتوح المصئدر، لبئد لئك مئن أئن متتقئن لطريقة
التعامئل مئع مخدم CVSلتكون قادرا علئى استخراج
الشيفرة المصئدرية والحصئول عليهئا، فتقوم بعئد ذلك
بإضافة متعديلمتك إليها، ومن ثم إيداع متلك التعديلت التي
أضفتهئا مجددا فئي مكنئز الشيفرة المصئدرية الصلية
للمشروع، لتصئئبح جزءئئا منئئه ومتكون بالتالئئي متاحة
للتخرين.
8. أين يمكن استخدام نظام CVS؟
• مئن ناحيئة المبدأ فإئن أئي مشروع مؤلئف مئن عدة ملفات يمكنه
السئتفادة مئن تخدمات نظام CVSمثئل: متطويئر الئبرمجيات أو
مواقع الويب أو مشاريع التوثيق.
• متطبق مزايا نظام CVSعلى الملفات النصية فقط مثل:
• ملفات HTML
• ملفات (RTF (Rich Text Format
• ملفات الشيفرة المصدرية مثل PHPأو Cأو Java
• ملفات XMLو SQL
9. كيف يعمل نظام CVS؟ )1(
يوجد مكنز repositoryعلى مخدم ما. •
يستخرج checkoutكل من المطورين نسخة عمل working •
copyعلى أنظمتهم المحلية.
يقوم المطورون بإجراء التعديلت على نسخة العمل المحلية التي •
متخصهم بطريقتهم المعتادة.
عند إنتهاء العمل على التعديل الذي يقومون به، عليهم أول إجراء •
عمليئة متحديئث updateلنسئخة العمئل لديهئم لتدمئج فيها متعديلت
المطورين التخرين التي متم إيداعها في المكنز تخلل فترة العمل
على التعديل.
10. كيف يعمل نظام CVS؟ )2(
• بعئد إمتمام التعديلت وإنجاز عمليئة التحديث بنجاح يقوم المطور
بإيداع commitالتعديلت التي قام بها في المكنز ليتم دمجها في
النسخة الصلية للمشروع.
• إن قام مطورين بتعديل ذات السطر البرمجي بشكل مستقل، حينها
ستفشل عملية اليداع، ويتلقى المطور التخير الذي يحاول اليداع
ملحظئة متفيئد بحدوث حالئة متعارض ،conflictويتوجئب عليه
حينهئا حئل هذا التعارض بشكئل يدوي قبئل أئن يكون قادرا على
إيداع متعديلمته من جديد.
11. ما هي فوائد استخدام نظام CVS؟ )1(
• يسئمح لعدة مطوريئن بالعمئل بشكئل مسئتقل علئى ذات مجموعة
الملفات، ليتم لحقا دمج متعديلمتهم في المكنز المركزي.
• يسئمح لئك بتتبئع مئن قام بإجراء التعديلت، و أيئن هئي متلك
التعديلت، و متى متم إجراؤها. كما يمكنك معرفة لماذا أجريت
متلك التعديلت إن إلتزم المطورون بإضافة متعليقات مفيدة مع كل
عملية إيداع يقومون بها.
• دليئل قوي فئي المحكمئة لثبات متطويئر البرمجيئة من تخلل
عرض مراحل متطويرها.
12. ما هي فوائد استخدام نظام CVS؟ )2(
• يقوم هذا النظام بحفظ الملفات ضمن مكنز مركزي، مع متوفير
نسئخ احتيالطيئة موزعئة علئى أنظمئة المطوريئن المحليئة )نسخ
العمل التي سبق أن استخرجوها من المكنز(.
• متمكيئن فرق العمئل المنتشرة جغرافيئا مئن العمئل على ذات
المشروع )كما هي حال المشاريع المفتوحة المصدر(.
• حفئظ كافئة الصئدارات بدءئا مئن متاريئخ اسئتخدام النظام، على
عكس أسلوب النسخ الحتيالطي حيث نتخلص عادة من النسخ
القديمة بعد فترة.
13. ما هي فوائد استخدام نظام CVS؟ )3(
• إمكانية متوليد متقرير يوضح مراحل متطور المشروع عبر الزمن
لستقراء فعالية عملية التطوير.
• متوفير إمكانية التراجع عن أي من التعديلت التي متمت تخلل أي
فترة زمنيئة بسئهولة و اسئترجاع حالئة الملفات كمئا كانئت قبل
متاريخ معين.
• القتصئاد فئي اسئتخدام عرض نطاق المتصئال الشبكئي المتوفر
ومساحة التخزين على المخدم من تخلل حفظ التعديلت نسبة
إلى الصدار السابق فقط.
14. ما ل يقوم به نظام !CVS
• ل يعتئئبر نظام CVSوسئئيلة للمتصئئال بيئئن أعضاء الفريق
البرمجي، وليس بديل للعمل الجماعي.
• ل يعتبر نظام CVSنظاما تخاصا بتتبع التخطاء ومتابعة عملية
إصلحها.
• ل يوفئئر نظام CVSأئئي أدوات لفحئئص الشيفرة البرمجية
وإتختبارها.
16. ضرورة عمليات الفحص والختبار
• إن كل من مارس البرمجة يعلم متماما أن الوقوع في التخطاء هو
أمر ل مفر منه.
• علئى المئبرمج المحترف أئن يخطئط مسئبقا لتفحص التخطاء
والمواظبة على اتختبار ما يكتبه من شيفرات برمجية سعيا وراء
اصطياد مبكر للتخطاء مما يعزز من فرص اكتشافها ويقلل من
كلفة إصلحها.
• متعتئئبر عمليات التختبار متلئئك واحدا مئئن الركان الساسية
لعمليات مراقبئة وضبئط الجودة التئي ل غنئى عنهئا فئي عالم
الحتراف.
17. ما هو برنامج PHPUnit؟
• إلطار عمئل بسئيط وسئهل السئتخدام يسئاعد المئبرمج على بناء
ومتنفيذ عمليات الفحص والتختبار المؤمتمتة للوحدات البرمجية.
• إن برنامج PHPUnitهو فرد من عائلة مكتبة ،PEARفإن
لئم يكئن متوفئر علئى المخدم الذي متسئتخدمه، يمكنئك متنصيبه
ببسالطة من تخلل متنفيذ التعليمتين التاليتين في سطر الوامر:
pear channel-discover pear.phpunit.de
pear install phpunit/PHPUnit
18. PHPUnitوالمشاريع المفتوحة المصدر
• إئن إلحاق شيفرات التختبارات المؤمتمتئة بأئي برمجية حرة
مفتوحة المصدر متمكن المستخدم من التحقق من صحة عمل متلك
البرمجيئة علئى منصئته ويمنحئه مزيدا مئن الثقئة بهئا كون فريق
العمل المعني بتطويرها يتبع إجراءات ضمان الجودة المتعارف
عليها.
• إن فائدة متوفر مثل هذه التختبارات المؤمتمتة يساعد أيضا كل
مئن يحاول متعديئل أئو متطويئر برمجيئة مئا علئى التأكئد مئن أن
التغييرات التئي قام بهئا لئم متتسئبب فئي ظهور أئي تخلئل فئي بقية
أرجاء البرمجية.
19. كيف يعمل PHPUnit؟ )1(
• قد متبدو عملية متصميم وبناء التختبارات المؤمتمتة مستهلكة للوقت،
لكن هذا النطباع تخالطئ، فبناء اتختبار جديد باستخدام إلطار عمل
PHPUnitل يستغرق أكثر من بضع عشرات من الدقائق، كما
أن متنفيذ التختبار ذامته يتم في ثوان.
23. ما هو برنامج phpDocumentor؟
• يعد التوثيق المتكامل والوافي واحدا من أهم سمات الحترافية في
العمل البرمجي، لكنه من جهة أتخرى يصنف على أنه واحد من
المهام التي متصيب معظم المبرمجين بالملل كونه يستهلك الكثير
من الوقت الذي يصرف بعيدا عن محبوبتهم البرمجة، لذا وجب
على المبرمج المحترف أن يجد حل وسطا ما بين شغف البرمجة
ورصانة التوثيق.
• يهدف phpDocumentorإلئى مسئاعدة المئبرمجين علئى متوليد
متوثيق معياري بشكل شبه آلي إنطلقا مما يكتبونه من ملحظات
ومتعليقات بيئن ثنايئا شيفرامتهئم المصئدرية شريطئة إمتباعهئم لطريقة
معينة في كتابة متلك الملحظات والتعليقات