سؤال

أحاول ترميز نمط TDD في PHP وأحد أكبر العوائق التي أواجهها (بخلاف عدم وجود IDE لائق) هو أنني يجب أن أقوم بإنشاء حاوية IoC الخاصة بي التي تم اختراقها معًا فقط لحقن جميع الكائنات الوهمية الخاصة بي بشكل صحيح.

هل استخدم أي شخص حاوية Ioc في PHP؟كل ما تمكنت من العثور عليه هو PHP IOC على موقع phpclasses.org المزعج دائمًا ويبدو أنه لا يحتوي على أي وثائق تقريبًا وليس لديه الكثير من المتابعين.

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

المحلول

لقد لعبت مع بعض أطر عمل DI لـ PHP، لكنني لم أستخدم واحدة في الإنتاج.لديك بعض الروابط:

  1. http://www.stubbles.net/ ما أعتقد أنه أقدم جربتها
  2. http://php.xjconf.net/
  3. التدفق3 - أعتقد أن هذا الإطار سيصبح إطارًا لطيفًا للغاية (الإصدار التجريبي الآن)

لقد ذكرت أنك ستستخدمه لـ TDD - لذا ربما قم بإلقاء نظرة عليه حقن التبعية لاختبارات الوحدة في PHP

نصائح أخرى

فيمتو ويجري تطويره مرة أخرى، ويبدو IMHO واعدة جدا.

بعض المشاريع المماثلة الأخرى، التي قد ترغب في إلقاء نظرة عليها:

دلو (تنصل:أنا المؤلف الرئيسي لهذا واحد)

ال php-ميناء picocontainer, ، كان موجودًا منذ فترة طويلة.لا أعتقد أنه يتم تطويره بشكل نشط بعد الآن، ولكن من ناحية أخرى، أعتقد أنه مستقر تمامًا.لقد مر وقت طويل منذ أن نظرت إليه بالرغم من ذلك.

مشروع جديد نوعًا ما، عثرت عليه مؤخرًا هو ماكرة.لست متأكدًا من عدد الأشخاص الذين يستخدمونه بالرغم من ذلك.

أنا أيضا أشاهد متبل, ، والتي تبدو مثيرة للاهتمام.

قد ترغب أيضًا في تجربة Ding (http://marcelog.github.com/Ding) الذي تم تصميمه على غرار Spring(tm) لـ Java.إنه انعكاس كامل لحاوية حقن التحكم والتبعية، والتي تدعم أيضًا AOP

ماذا عن حقن التبعية Symfony أو ما يعادل PHP 5.3+ عنصر من مشروع Symfony 2.0.

PHP-DI هي حاوية حقن تبعية أخرى.

ويتميز حقن التبعية من خلال التعليقات التوضيحية و الحد الأدنى من التكوين, ، هنا مثال:

class Foo {
    /**
     * @Inject
     * @var Bar
     */
    private $bar;
}

إنه سهل الاستخدام للغاية، ويتكامل مع Zend Framework على سبيل المثال.

(نعم أنا أعمل على هذا الإطار)

لقد كنت أعمل على حاوية PHP IoC/DI اسمه الركيزة للأشهر الستة الماضية.لا يزال العمل قيد التقدم إلى حد كبير ولكنه كان كذلك المنتشرة في الإنتاج لمدة شهر ونصف، وكان يعمل بشكل جيد حتى الآن.

الركيزة مستوحاة من Spring Framework، ولكنها مكتوبة مع وضع نقاط القوة والقيود في PHP في الاعتبار.الوثائق ضئيلة جدًا في هذه المرحلة، ولكن هناك بعض منها عينة من الرموز, ، بما في ذلك مثال اختبار الوحدة.هل هذا شيء تعتقد أنك قد تكون قادرًا على استخدامه لـ TDD؟

يحتوي Laravel 4 على أفضل إطار عمل IoC وDI.إذا كنت لا تمانع في استخدام إطار عمل، فإن Laravel 4 هو الحل الأمثل

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