Je crée une nouvelle application dans Zend Framework 3 et j'ai une question sur un modèle de conceptionZend Framework 3 singletons
Sans entrer dans les détails beaucoup cette application aura plusieurs services, comme, vous connecterez APIs externes et même dans plusieurs bases de données, le workflow est également très complexe, une seule action peut avoir plusieurs flux en fonction de plusieurs informations externes (utilisateur connecté, configs, etc). Je connais les injections de dépendances et Zend Framework 3 Service Manager, mais je m'inquiète de l'instanciation des services sereval lorsque le flux n'en utilisera que quelques-uns dans certains cas, nous aurons aussi des services dépendant d'autres services, Pour cela, je pensais à utiliser des singletons.
Est-ce que singleton est vraiment une solution ici? Je cherchais un moyen d'utiliser des singletons utilisateur dans Zend Framework 3 et je n'ai pas trouvé de solution facile car je n'arrive pas à trouver un moyen d'utiliser le gestionnaire de service dans un service, car je ne peux pas récupérer l'instance du gestionnaire de service en dehors du système Factory.
Qu'est-ce qu'un moyen facile d'implémenter des singletons dans Zend Framework 3?
"N'utilisez pas non plus le gestionnaire de service dans une autre classe sauf une usine.". Mais que faire si j'ai besoin de créer une nouvelle instance d'une classe qui a des dépendances? Par exemple, manipulez des données différentes dans des objets à l'intérieur d'un modèle alors que les deux objets sont de la même classe. Sans accès au gestionnaire de service je devrais à tout le processus d'instanciation manuellement. J'ai encore besoin de quelque chose comme ça, mais je m'inquiète des problèmes à venir. –
Si vous avez besoin d'un autre service dans un service, vous devez injecter le service auprès du constructeur. Et vous ne manipulez pas les données à l'intérieur des modèles, du moins pas lorsque d'autres classes sont impliquées. Les données sont préparées dans une classe de service et injectées dans un modèle. Si vous êtes inquiet du nombre d'usines que vous devez créer dans le futur, ne vous inquiétez pas, vous vous y habituerez :) Vous vous remercierez plus tard lors de l'écriture de tests unitaires. Et il y a [des tours de vaudou] (https://xtreamwayz.com/blog/2015-12-30-psr7-abstract-action-factory-one-for-all) mais ils viennent avec une pénalité de performance. – xtreamwayz