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
Décrivez ici votre code ou ce que vous cherchez à faire
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";
}
Et voici le contenu de mon fichier routes.php
$router->map('GET', '/', 'home', 'home');
$router->map('GET', '/contact', 'contact', 'contact');
$router->map('GET', '/about', 'about', 'about');
$router->map('GET', '/achievements', 'achievements', 'achievements');
$router->map('GET', '/achievements/[*:slug]', 'achievements', 'achievement');
$router->map('GET', '/projects', 'projects', 'projects');
$router->map('GET', '/projects/[*:slug]', 'projects', 'project');
$router->map('GET', '/news', 'news', 'news');
$router->map('GET', '/news/[*:slug]', 'news', 'single_news');
J'avoue que c'est dur de savoir, dans la mesure où le résultat est le même bien que je commente ce bout de code... Et justement je l'ai décommenté pour voir si impacterait sur le fonctionnement du système
Oui oui en effet. J'ai fait un dump($_SERVER)
et rien ne semble clocher. Même que la valeur pour $_SERVER['REQUEST_URI']
correspond bien à ce que j'attends. Le plus étrange c'est que mes routes fonctionnent bien lorsque je lance le serveur interne de php php -S localhost:8000
sauf que j'arrive malheureusement pas à charger mes fichiers css ni javascript. J'arrive vraiment pas à savoir ce que j'ai loupé. Je cherche encore. Sinon voilà où j'en suis.