Bonjour,
Voila je rencontre un petit problème avec mon code.
Décrivez ici votre code ou ce que vous cherchez à faire
foreach($this->routes[$_SERVER['REQUEST_METHOD']] as $route){
if($route->match($this->url)){
return $route->call();
}
}
RouterException::notFounf('No matching routes');
je veux envoyer une exception qui redirige vert une 404 si aucune route na était trouver
Une exception méme si la route éxiste
hello,
il faudrait que tu nous donnes un minimum du contexte dans lequel tu travailles, par exemple si tu utilises Yaf_Router...
Bonjour.
Il semblerait que ça vienne de la classe Router qu'avait fait Grafikart dans son tutoriel.
La seule différence que je vois d'après le peu de code que tu nous montre, c'est que tu utilises une classe statique pour les erreurs.
Tu n'aurais d'ailleur pas fait une erreur dans la méthode de la classe ?
Ce ne serait pas plutôt notFound
au lieu de notFounf
?
Montres nous au minimum la fonction entière et au mieux, si elle n'est pas trop longue, montres nous la classe dans sa totalité.
Voici le code mais au fait le problème c'est que le return de $route->call();
n'arête par la fonction du coup sa lance quand même la fin du code.
<?php
namespace Core\Router;
use core\Core;
use Exception;
class RouterException extends \Exception{
static function notFounf($exception){
self::log($exception);
header('Location: /404');
exit();
}
private static function log($exception){
if (isset($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
}elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = (isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '');
}
Core::getDatabase()->prepare('INSERT INTO router_exception SET ip = ?, exception = ?', [$ip, htmlspecialchars($exception)]);
}
}
;) c rigolo une méthode notFounf...
perso 2 trucs me pique les yeux :
bon, j'ai pas envie de me taper tout le tuto, dslé...
tu peux envoyer les méthodes match et call de tes routes ?
et (encore dslé) le pourquoi du "use Exception;", c koi ?