[hardCore PHP OO] injection de dépendance/inversion de contrôle
Bonjour,
Je souhaites revoir mes habitudes de dev, et je m’intéresse actuellement à PHPUnit.
J'avais l'habitude d'utiliser des singletons et/ou des méthodes statiques, mais il semble que ce soit le diable, au moins pour les tests unitaires.
Sans relancer le débat, vous confirmez?
Donc j'ai maintenant l'occasion de me lancer dans l'injection de dépendance et l'inversion de contrôle. Je souhaiterai un outil, qui:
-Gère l'inversion de contrôle
-Gere les require/include
-soit léger
-soit peu verbeux, idéalement un truc comme ça:
Code:
$monObjet=$contexte->factory('objet')->get(25);
Connaissez-vous un outil qui corresponde à ça, ou vaut-il mieux que je le développe moi-même?
D'autres remarques?
Merci,
@+
Piero
J'avais ouvert cette discussion dans un autre forum, je me suis planté donc j'ai mis un lien vers celle-ci...
Demande de dernières précisions
Salut,
Je suis revenu de vacances...
- J'ai un peu de mal à définir la limite du découplage :?
Si j'ai bien compris des classes qui sont destinées à travailler ensemble doivent être couplées, si il s'agit mettons de modules différents, de haut/bas niveau elles doivent être découplées?
Tu peux confirmer? (où infirmer et entrer un peu plus dans le détail)
Par exemple pour mon uriHandler que j'estime finalement assez spécifique et associé à mon container, je peux coupler? - Donc pour bootstrap, c'est simplement un fichier php qui contient un tableau associatif $config avec tous les paramètres et services utilisateur, qui viennent disons surcharger ceux que j'ai défini par défaut dans le constructeur d'Application?
J'ai juste? - En ce qui concerne les tests, je comprends pas très bien ce que tu préconises, mais peut-être que c'est moi qui m'y prends mal... Ce que tu propose c'est simplement des methodes pour faciliter les tests fonctionnels, c'est ça?
Je suis désolé si mes questions te paraissent triviales, mais pour moi c'est tout nouveau, et d'une part les tutos que j'ai lu ne répondent pas à toutes mes questions, d'autre part je n'ai pas suffisamment de temps/motivation pour approfondir les cours un peu obscurs que je trouve sur internet.
Dans tous les cas grâce à toi je m'en sort quand même, merci (encore une fois) pour tes réponses, qui, si elles me font pas mal gamberger, ont le mérite de me faire progresser rapidement et (je l'espère) dans la bonne direction.
@+
Piero