Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire
En fait je suit entrain de suivre le tuto de la mise en pratique de la POO en PHP mais depuis bientot 24h maintenant je suis bloqué avec la classe BlogModule.

Entourez votre code pour bien le mettre en forme
```<?php

namespace App\Blog;

use Framework\Module;
use Framework\Renderer\RendererInterface;
use Framework\Router;
use Psr\Http\Message\ServerRequestInterface as Request;

class BlogModule extends Module
{
    const DEFINITIONS = __DIR__.'/config.php';

    public function __construct(string $prefix, Router $router, RendererInterface $renderer)
    {
        $this->renderer = $renderer;
        $this->renderer->addPath('blog', __DIR__ . '/views');
        $router->get($prefix, [$this, 'index'], 'blog.index');
        $router->get($prefix.'/{slug:[a-z\-0-9+]+}', [$this, 'show'], 'blog.show');
    }

    public function index(Request $request): string
    {
        return $this->renderer->render('@blog/index');
    }

    public function show(Request $request): string
    {
        return $this->renderer->render('@blog/show', [
            'slug' => $request->getAttribute('slug')
        ]);
    }
}

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir
En fait en suivant le tuto sur le chapitre des injections de dépendence, à un moment donné mon test n'affiche pas la page blog mais plutot une erreur lors ce que j'ai ajouter l'attribut $prefix dans le constructeur de BlogModule. Si quelqu'un à une solution, votre aide sera la bienvenue.

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(
Fatal error: Uncaught DI\Definition\Exception\InvalidDefinition: Entry "App\Blog\BlogModule" cannot be resolved: Parameter $prefix of __construct() has no value defined or guessable Full definition: Object ( class = App\Blog\BlogModule lazy = false $prefix = get(blog.prefix) ) in C:\wamp64\www\Sites\MonFramework\vendor\php-di\php-di\src\Definition\Exception\InvalidDefinition.php:18 Stack trace: #0 C:\wamp64\www\Sites\MonFramework\vendor\php-di\php-di\src\Definition\Resolver\ObjectCreator.php(155): DI\Definition\Exception\InvalidDefinition::create(Object(DI\Definition\ObjectDefinition), 'Entry "App\Blog...') #1 C:\wamp64\www\Sites\MonFramework\vendor\php-di\php-di\src\Definition\Resolver\ObjectCreator.php(71): DI\Definition\Resolver\ObjectCreator->createInstance(Object(DI\Definition\ObjectDefinition), Array) #2 C:\wamp64\www\Sites\MonFramework\vendor\php-di\php-di\src\Definition\Resolver\ResolverDispatcher.php(64): DI\Definition\Resolver\ObjectCreator->resolve(Object(DI\Definition\ObjectDefinition), Arra in C:\wamp64\www\Sites\MonFramework\vendor\php-di\php-di\src\Definition\Exception\InvalidDefinition.php on line 18

1 réponse


Le probleme se situe au niveau de la configuration. si vous pouvez envoyé une capture du code de la config