J'ai essayé de remplacer le ContainerInterface par une instance qui implémente le ContainerInterface mais à la récupération de la page qui liste les articles administrable c'est la 404.
De plus mon ide s'affole lorsque je passe en paramètre le Container de php-di
Bonjour,
Je suis la formation de grafikart mise en pratique POO arrivé à la première vidéo administration du blog je pense avoir un soucis avec php-di qui ne parviens pas à me charger une instance de mon ContainerInterface. Je ne comprends pas bien ce que veut dire Grafikart quand il dit que "php-di aurait deja injecter par rapport à a clé ContainerInterface le container". Comment vérifier que c'est bien le cas ?
Ce que je fais
Function __construct de mon BlogModule
Fichier config au niveau du Blog
Fichier config au niveau de l'Admin
Ce que je veux
Je cherche donc à afficher ma page d'administration et comprendre comment je peux vérifier que php-di à bien injecter le container par rapport à la clé ContainerInterface
Ce que j'obtiens
Fatal error: Uncaught DI\Definition\Exception\DefinitionException: Entry "App\Blog\BlogModule" cannot be resolved: Entry "Psr\Container\ContainerInterface" cannot be resolved: the class is not instantiable Full definition: Object ( class = #NOT INSTANTIABLE# Psr\Container\ContainerInterface scope = singleton lazy = false ) Full definition: Object ( class = App\Blog\BlogModule scope = singleton lazy = false __construct( $container = get(Psr\Container\ContainerInterface) ) ) in C:\wamp64\www\sdlv\vendor\php-di\php-di\src\DI\Definition\Exception\DefinitionException.php:16 Stack trace: #0 C:\wamp64\www\sdlv\vendor\php-di\php-di\src\DI\Definition\Resolver\ObjectCreator.php(154): DI\Definition\Exception\DefinitionException::create(Object(DI\Definition\ObjectDefinition), 'Entry "App\Blog...') #1 C:\wamp64\www\sdlv\vendor\php-di\php-di\src\DI\Definition\Resolver\ObjectCreator.php(70): DI\Definition\Resolver\ObjectCreator->createInstance(Object(DI\Definition\ObjectDefinition) in C:\wamp64\www\sdlv\vendor\php-di\php-di\src\DI\Definition\Exception\DefinitionException.php on line 16
Je me suis pourtant rensiegner et est essayé d'activer manuellement l'autowiring mais rien n'y fait toujours la même erreur. Je me suis pourtant documenté pour essayer de trouver un autre moyen d'implémenter le ContainerInterface mais rien de concluant.
Après plusieurs jours de recherches je sèche.
3 réponses
J'ai également réessayer avec une autre méthode qui consiste à ajouter cette ligne de codedans mon index.php
mais pareil c'est la 404 quand il s'agit d'accéder à la partie administration.
J'ai pourtant la bonne architecture de dossier je me suis refait le chapitre sur le renderer pour essayer de comprendre et par la même occasion le tutoriel sur php-di mais je ne trouves toujours pas de solutions.
Je n'ai finalement pas trouvé de solutions et suis repartis de zero à partir des sources.
Merci à ceux qui ont essayé de l'aider sur discord notamment.