0
votes

Conteneur d'injection de dépendance PHP (V3.6.5) sans gras

Quelqu'un a-t-il un exemple d'utilisation simple?

https://fatfreeframework.com/3.6/quick-Reference#Container page Semble me semble pas vraiment explicatif, mais il faut généralement comprendre une bonne façon d'injecter auto-injecter $ db_connection objet juste lorsque / si nécessaire, par exemple. Dans la méthode BEFFOREROUTE () de Class's Beforeroute () Résolution de l'itinéraire lisse


2 commentaires

$ F3-> SET ('dB', nouveau \ db \ sql (...)); et $ F3-> obtenir ('dB') où vous avez besoin IT .. pour de vrai di, vous pouvez utiliser n'importe quel conteneur di-11 compatible PSR-11. Il vous suffit de définir son nom de classe sur la variable de conteneur .. Plus d'idées ici: GITUB.COM/BCOSCA/FATFREE-CORE/Pull/221


D'accord, pour le garder simple, tout en résolvant les itinéraires: il s'agit d'une première préoccupation d'avoir besoin de «dB» uniquement si aucune connexion DB n'est présente (à gauche des connexions précédentes). Alors, est-ce agréable de: $ F3-> route ('get /', fonction ($ f3) {$ f3-> obtenir ('db'); 'inconvénient: structure'}); Ou mieux obtenir 'db' dans la méthode __Construct () de Construction ()? Je veux juste m'assurer que la connexion est vraiment nécessaire (pas persisté du passé) avant d'inclure / d'injection. Donc, peut-être en effet au-dessus de la même façon, c'est bien d'aller (le plus simple et sûr) avec l'argument de PDO Cadre: attr_persistent => faux?


3 Réponses :


0
votes

Alors, j'ai opté pour Singleton: // classe de base de données xxx


1 commentaires

// contrôleur principal: $ F3-> route ('get / yoo', fonction ($ f3) {$ connexion = $ F3-> appel ('f3pdo :: geInstance') -> Connect (); echo '


'; $ résultat = $ Connection-> EXEC ("SELECT * de MyDBTable'); //...etc}); Ou mieux utiliser l'entité de classe d'entité Beforeroute () {* -> Connect ()}



0
votes

Désolé pour la manimeté, je viens de découvrir pour moi-même intégré \ Prefab Class (pour être étendu à des singletons), donc la connexion DB ci-dessus que je préfère faire comme%: xxx

}


0 commentaires

1
votes

Lorsque vous portez Selfoss d'utiliser DI, j'ai choisi des dés comme suggéré dans les documents que vous avez liés. J'ai configuré le conteneur pour n'utiliser qu'une seule instance partagée de la classe DB et la transmettre la chaîne de connexion: xxx

puis f3 utilisera le conteneur de dés pour créer des classes afin de créer des classes afin de créer des contrôleurs et de tout Les dépendances seront transmises aux dépendances instanciées du constructeur: xxx

voir le Code source Selfoss pour un exemple complet de la configuration du conteneur de dépendance.


0 commentaires