Bonjour à tous, j'espère que vous passez un bon weekend, j'ai un soucis que je n'arrive pas à résoudre. J'ai un fichier index qui me sert de routeur et donc d'afficher les vues mais il ne fonctionne pas convenablement.

Voici le code :

PHP
<?php

define('ROOT', dirname(__DIR__));
require ROOT . '/app/App.php';

App::load();

if(isset($_GET['p'])){
    $page = $_GET['p'];
}else{
    $page = 'posts.index';
}

$page = explode('.', $page);
if($page[0] == 'admin'){
    $controller = '\App\Controller\Admin\\' . ucfirst($page[1]) . 'Controller';
    $action = $page[2];
} else{
    $controller = '\App\Controller\\' . ucfirst($page[0]) . 'Controller';
    $action = $page[1];
}
$controller = new $controller();
$controller->$action();

Et mon lien github est le suivant : https://github.com/EKreir/mvcpaths

Ce que je veux

Je veux qu'il affiche mes pages de mon site sans problème
Ce que j'obtiens

J'ai une page blanche avec cette erreur dans le terminal : 127.0.0.1:42412 [500]: GET / - Uncaught Error: Failed opening required '/home/eliess/mvc/app/Controller/PostsController.php' (include_path='.:/usr/share/php') in /home/eliess/mvc/app/Autoloader.php:24
Stack trace:

0 /home/eliess/mvc/public/index.php(20): App\Autoloader::autoload() 1 {main}

thrown in /home/eliess/mvc/app/Autoloader.php on line 24

2 réponses


popotte
Réponse acceptée

Hello :)

Alors le soucis c'est que tu as mal nommé le PostsController, tu l'as nommé PostController (sans "s") et le routeur essaye de require PostsController (avec "s")

merci popotte, ça fonctionne :)