laravel - la création d'un fournisseur dans larav5 rencontre le problème qu'il ne peut pas être instancié
伊谢尔伦
伊谢尔伦 2017-05-16 16:56:43
0
5
593

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 !

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

répondre à tous(5)
曾经蜡笔没有小新

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')

phpcn_u1582

Je veux juste poser une petite question
Les interfaces peuvent-elles être instanciées ?

PHPzhong

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

过去多啦不再A梦

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal