Créez votre propre fournisseur de services dans larave5 Lors de l'exécution, un message d'erreur apparaît : La cible [AppIServicesTestServiceInterface] n'est pas instanciable. La structure du code est la suivante, veuillez aider à analyser la raison :
J'ai créé un répertoire nommé : IServices dans le répertoire de l'application pour stocker mes interfaces liées aux services. Les implémentations sont placées dans le répertoire Services.
Ensuite, les prestataires de services sont placés dans le répertoire Fournisseurs.
Après avoir terminé les étapes ci-dessus, enregistrez le fournisseur de services dans app.php.
Injectez-le ensuite via le constructeur dans HomeController, selon l'interface :
Lors de l'exécution, une erreur qui ne peut pas être instanciée a été signalée.
Je ne comprends pas, pourquoi ne peut-il pas être instancié ? J'ai déjà implémenté cette interface. Et également inscrit ? Quel lien clé est erroné ? Ou je l'ai raté ? J'espère que quelqu'un pourra me donner des conseils, merci !
Publiez votre trace de bug et votre fournisseur de services et jetez-y un œil. Sinon, peu importe à quel point vous êtes bon, vous ne pourrez pas deviner où vous vous êtes trompé. Mon intuition me dit que vous n'avez probablement pas ajouté votre propre fournisseur dans app.php
L'écriture est correcte, mais vous devez dire à ioc quelle est l'implémentation de l'interface que vous liez, en l4 c'est le cas
bind
方法, l5还没细看,应该也有这个方法吧。否则 laravel 就不知道该注入什么,自然光一个接口是无法实例化的了。应该找一个地方写上类似
App::bind('TestServiceInterface', 'TestService')
Je veux juste poser une petite question
Les interfaces peuvent-elles être instanciées ?
Je ne sais pas pourquoi j'ai repassé le compositeur pour un projet, je viens de l'écrire une fois et c'était bien. Il se peut que quelque chose ait changé dans mon projet précédent au cours du processus d'apprentissage. Je n'ai pas trouvé exactement où se trouve l'erreur. Je regrette
Frère se demande~, ce problème a-t-il été résolu ? Je suis sur le point de m'effondrer
Après avoir moi-même cherché la réponse, il s'est avéré que le compositeur faisait quelque chose de bizarre. Il semble que nous devons comprendre coposer.json