Question

J'essaie de coder le style TDD en PHP et l'une de mes plus grandes pierres d'achoppement (autre que le manque d'IDE décent) est que je dois créer mon propre conteneur IoC piraté juste pour injecter correctement tous mes objets fictifs.

Quelqu'un a-t-il utilisé un conteneur Ioc en PHP ?Tout ce que j'ai pu trouver c'est PHP IOC sur le toujours ennuyeux phpclasses.org et il semble n'avoir presque aucune documentation et peu de suivi.

Était-ce utile?

La solution

J'ai joué avec certains DI Frameworks pour PHP, mais je n'en ai pas utilisé en production.J'ai quelques liens :

  1. http://www.stubbles.net/ ce que je pense que c'est le plus ancien que j'ai essayé
  2. http://php.xjconf.net/
  3. FLUX3 - Je crois que celui-ci deviendra un très beau cadre (sa version bêta en ce moment)

Vous avez mentionné que vous l'utiliseriez pour TDD - alors jetez peut-être un œil à Injection de dépendances pour les tests unitaires en PHP

Autres conseils

Phemto est à nouveau développé et semble assez prometteur à mon humble avis.

Quelques autres projets similaires, que vous voudrez peut-être examiner :

seau (Clause de non-responsabilité:Je suis l'auteur principal de celui-ci)

Le port php de picocontainer, existe depuis longtemps.Je ne pense pas qu'il soit activement développé, mais d'un autre côté, je pense qu'il est assez stable.Mais ça fait longtemps que je ne l'ai pas regardé.

Un projet plutôt nouveau sur lequel je suis tombé récemment est Rusé.Je ne sais pas combien de personnes l’utilisent.

je regarde aussi sphicy, ce qui a l'air intéressant.

Vous pouvez également essayer Ding (http://marcelog.github.com/Ding) qui est calqué sur Spring(tm) pour Java.Il s'agit d'une inversion complète du conteneur d'injection de contrôle et de dépendances, qui prend également en charge AOP

Que dire de la Injection de dépendance Symfony ou l'équivalent PHP 5.3+ composant du projet Symfony 2.0.

PHP-DI est un autre conteneur d'injection de dépendances.

Il propose une injection de dépendances via annotations et configuration minimale, Voici un exemple:

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

Il est très simple à utiliser et s'intègre à Zend Framework par exemple.

(oui, je travaille sur ce framework)

J'ai travaillé sur un Conteneur PHP IoC/DI nommé Substrat au cours des six derniers mois.Il s'agit encore d'un travail en cours, mais cela a été déployé en production depuis un mois et demi et cela fonctionne plutôt bien jusqu'à présent.

Substrate est inspiré de Spring Framework, mais écrit en gardant à l'esprit les forces et les limites de PHP.La documentation est assez minime à ce stade, mais il y a quelques exemple de code, y compris un exemple de test unitaire.Est-ce quelque chose que vous pensez pouvoir utiliser pour TDD ?

Laravel 4 possède le meilleur framework IoC et DI.si cela ne vous dérange pas d'utiliser un framework, Laravel 4 est la voie à suivre

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top