Altorrouter avec XAMPP

xampp/htdocs/AAA/public/index.php : 

<?php
require '../vendor/autoload.php';

$router = new App\Router(dirname(__DIR__) . DIRECTORY_SEPARATOR .'book');
$router 
    ->get('AAA/public/livre', 'AAA/book/post/index', 'livre')
    ->run();
dd($router);
?>

xampp/htdocs/AAA/src/Router.php :

<?php
namespace App;

class Router {

    private $viewPath;

    private $router;

    public function __construct (string $viewPath) {
        $this->viewPath = $viewPath;
        $this->router = new \AltoRouter();
    }

    public function get (string $url, string $view, ?string $name = null): self {
        $this->router->map('GET', $url, $view, $name);

        return $this;
    }

    public function post (string $url, string $view, ?string $name = null): self {
        $this->router->map('POST', $url, $view, $name);

        return $this;
    }

    public function url (string $name, array $params = []) {
        return $this->router->generate($name, $params);
    }

    public function run (): self {
        $match = $this->router->match();
        if ($match !== false && is_array($match) && isset($match['target'])) {
            $view = $match['target'];
            $router = $this;
            ob_start();
            require $this->viewPath . DIRECTORY_SEPARATOR . $view . '.php';
            $content = ob_get_clean();
            require $this->viewPath . DIRECTORY_SEPARATOR . 'layouts/default.php';
        } else {
            // Gérer le cas où aucune correspondance de route n'a été trouvée
            echo dd($this->router);
        }
        return $this;
    }

}

?>

Ce que je veux

Pour donner certaines informations, j'utilise le terminale de XAMPP pour composer.
Je veux mettre en place mon router. J'ai debuggé avec dd et je trouve que le problème est au niveau du match qui renvoie false: Voici quelques retours du debugger :

Ce que j'obtiens

dd($this) :

AltoRouter {#4 ▼

routes: array:1 [▼
0 => array:4 [▼
  0 => "GET"
  1 => "AAA/public/livre"
  2 => "AAA/book/post/index"
  3 => "livre"
]

]

namedRoutes: array:1 [▼
"livre" => "AAA/public/livre"

]

basePath: "" matchTypes: array:6 [▼
"i" => "[0-9]++"
"a" => "[0-9A-Za-z]++"
"h" => "[0-9A-Fa-f]++"
"*" => ".+?"
"**" => ".++"
"" => "[^/\.]++"

]
}

dd($this->router) :

App\Router {#2 ▼
-viewPath: "C:\xampp\htdocs\AAA\book"
-router: AltoRouter {#4 ▼

routes: array:1 [▼
  0 => array:4 [▼
    0 => "GET"
    1 => "AAA/public/livre"
    2 => "AAA/book/post/index"
    3 => "livre"
  ]
]
#namedRoutes: array:1 [▼
  "livre" => "AAA/public/livre"
]
#basePath: ""
#matchTypes: array:6 [▼
  "i" => "[0-9]++"
  "a" => "[0-9A-Za-z]++"
  "h" => "[0-9A-Fa-f]++"
  "*" => ".+?"
  "**" => ".++"
  "" => "[^/\.]++"
]

}
}

dd($match) : false

Merci de votre aide.

Aucune réponse