سؤال

بعد قراءة "الحديث PHP سير العمل" المادة في تشرين الثاني / نوفمبر 2008 الطبعة php|مجلة المهندس التي مناقشة اختبار وحدة (phpUnit) ، وبناء أدوات (Phing) و التكامل المستمر (Xinc) انا ألهم تعلم المزيد عن بعض من الأدوات المتاحة من أجل PHP, خصوصا Phing.

في الماضي كنت في كثير من الأحيان التعامل مع النشر إلى خادم إنتاج عن طريق تشغيل الموقع مباشرة كما التخريب العمل ونسخ ببساطة تشغيل "إس في تحديث" على إنتاج مربع إلى نشر أحدث نسخة من التعليمات البرمجية.

هل تستخدم أدوات البناء من أجل PHP رمز ؟ ما هي المزايا التي كنت تعتقد أنها توفر على نشر مباشرة من التخريب ؟ ما الذي يجب أن نبحث عنها ، أو ما gotchas قد لا وجه ؟

هل كانت مفيدة؟

المحلول

لقد استخدمت كل Phing و النمل و يفضلون هذا الأخير أكثر من ذلك بكثير.ذهبت في البداية مع Phing نظرا لكونها مكتوبة في PHP ولكن أن نكون صادقين أنها ليست ناضجة كما النمل.في النهاية, بعد أن ناضجة buildsystem مع مجتمع كبير يستحق أكثر من ذلك.

الأمور مع النمل/Phing:

  1. من قاعدة الخروج loalize إلى لغة معينة ، وضمان تبعيات هناك (البعض يبس, الدلائل, الخ)
  2. إذا كان لديك لهم ، ترجمة قوالب, الخ
  3. تحقيق الهدف قاعدة البيانات إلى الإصدار المطلوب ، اعتمادا على فحص رمز نسخة
  4. تشغيل وحدة الاختبارات, الخ

نصائح أخرى

وهناك قضية كبيرة أن أرى مع Phing هو أنه يخلق طبقة لا داعي لها من المراوغة. PHP هي لغة البرمجة، وبالتالي يمكن تشغيلها مباشرة. استخدام Phing من التكوين XML هو صالح الفقراء للغة: فإنه يوفر التكوين التعريفي أكثر قابلية للقراءة، ولكن على حساب التضحية بأي من المرونة للغة. مع النملة (مصدر إلهام لهذا الطريق) فمن المنطقي منذ جافا لم يكن لديك أن المرونة كما هو أقل دينامية ويتطلب تجميع.

للأسف أنا لم أر الكثير من البدائل الجيدة في الفضاء PHP، وخلافا لغات أخرى بناء أدوات ليست ضرورية كما أو جزء من ثقافة ذلك تطور خيار آخر مدعومة جيدا قد لا يحدث في أي وقت قريب.

وكنت بالتالي التمسك الخيارات التي هي أقرب إلى ما PHP <م> يمكن القيام به من الثقافات التي تدعم بقوة أكبر بناء الأدوات. وعادة ما تستخدم Gradle . الخليع أيضا يقوم بعمل كبير تبعا مع اللغة التي تريد الغش (وربما تكون هناك خيارات أخرى مماثلة ). يجب عليك أيضا أن تزن الأمور مثل دعم Webdriver إذا كنت في هذا النوع من الشيء. خلق خلاف ذلك الحل خفيفة الوزن باستخدام PHP و / أو BASH ينبغي أن يشمل كل شيء مع الحفاظ على الشفافية

نظرت في Phing في أنها تبدو رهيبة جدا.عن مشروع أعمل عليه أنا في الواقع باستخدام أباتشي النمل.أنا استخدامها للقيام بعدة أمور:

  1. الجمع بين وضغط جافا سكريبت و CSS (ضغط يتم ذلك باستخدام YUI ضاغط
  2. استبدال معيار التكوين الملفات مع إنتاج التكوين الملفات (على سبيل المثالإعادة تسمية ملف config.php.الإنتاج config.php)
  3. إزالة الامم المتحدة الملفات المطلوبة (مثل النمل بناء الملف ، build.xml)

أعتقد Phing هو يستحق النظر على النمل لأنها الأم PHP, التي يمكن أن تكون لطيفة.أيضا إذا كنت تفعل أي شيء أكثر من مجرد نسخ/نقل الملفات من مكان ابحث عن مشكلات في الأداء عند الانتقال إلى بيئة الإنتاج.لدي مشكلة حيث YUI ضاغط ركض بشكل جيد على الجهاز المحلي ولكن على صغيرة نسبيا VPS كانت بطيئة عظمى.

في مشروع أعمل عليه الآن نستخدمه phpUnderControl لتشغيل الاختبارات والحصول على وردود الفعل السريعة عندما يكون كسر شيء. ونحن نخطط لاستخدامها لإجراء اختبارات أخرى أيضا مثل بعض كتب في Watir .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top