Bonjour la famille,

Alors voilà, j'ai voulu dans le cadre d'un site web que je développe, mettre en place un système de routage un peu plus élaboré que par le passé alors j'ai suivi le tuto sur altorouter et fais à peu près comme dans le cours (avec quelques adaptations biensûr). Avec le serveur interne de PHP tout marche nickel (sauf que mon css ne fonctionne pas) mais je lance localhost et là au lieu de la page d'accueil je suis envoyé vers la page d'erreur direct. Un test dump de certaines variables me révèle que la variable $match ne retourne pas de tableau donc j'ai un false au dump test.

Ci-dessous le contenu de mon fichier index.php

define('WEBROOT', __DIR__);

define('TARGET_PATH', WEBROOT.'/contents');

//Mise en place de notre routeur

require 'vendor/autoload.php';

$router = new AltoRouter();
$router->setBasePath('/kpitalis.com/');

require_once 'config/routes.php';

$match = $router->match();

$target = $match['target'];
$params = $match['params'];

if (is_array($match)) {
    if (is_callable($match['target'])) {
        call_user_func_array($target, $params);
    } else {
        ob_start();
        require TARGET_PATH."/{$target}.php";
        $pageView = ob_get_clean();
    }
    require TARGET_PATH."/frame/layout.php";
} else {
    require TARGET_PATH."/error.php";
}

Ce fichier était d'abord dans le répertoire core/ puis je l'ai mis à la racine pour tester. J'ai également un .htaccess pour accompagner tout ça

J'aimerais savoir d'où vient le problème ou ce que je fais mal...

1 réponse


Bonjour,

Visiblement aucune des routes définies dans 'config/routes.php' ne correspond à l'URL courante, difficile d'en dire plus car tu n'as pas fourni ni l'URL demandée, ni les routes créées.

Ton fichier index.php doit se trouver à la racine, car il définit WEBROOT avec dir.
Comme dir est le répertoire du fichier en lecture (index.php), si tu le mets dans le répertoire core ça signifie que ta racine est le répertoire core.

AltoRouter est un excellent petit routeur, très souple et efficace, je l'utilise dans de nombreux projets, entre autres ce générateur de CRUD en PHP ou cette base de projet sur Github