Développer un site, jour 2

Par Konix, il y a 6 ans


Bonjour,

Je suis actuellement les tutoriaux de grafikart sur 'Developper un site' jour 2.

mais au moment d'afficher 'pages introuvable, le controller'.$this->request->controller.' n\'a pas de méthode '.$this->request->action

le message s'affiche...mais avec quelques erreures en supplément :

mon fichier PagesController.php :

<?php class PagesController extends Controller{ public function index() { $this->render('index'); } }

mon fichier Dispatcher.php :

<?php class Dispatcher { var $request; public function __construct() { $this->request = new Request(); Router::parse($this->request->url,$this->request); $controller = $this->loadController(); if(!in_array($this->request->action,get_class_methods($controller))){ $this->error('Le controller '.$this->request->controller.' n\'a pas de méthode '.$this->request->action); } call_user_func_array(array($controller ,$this->request->action) ,$this->request->params); $controller->render($this->request->action); } public function error($message) { $controller = new Controller($this->request); $controller->set('message',$message); $controller->render('/errors/404'); } public function loadController() { $name = ucfirst($this->request->controller).'Controller'; $file = ROOT.DS.'controller'.DS.$name.'.php'; require $file; return new $name($this->request); } }

mon fichier Controller.php

<?php class Controller{ public $request; public $vars = array(); public $layout = 'default'; private $rendered = false; public function __construct($request) { $this->request = $request; } public function render($view) { if($this->rendered){ return false; } extract($this->vars); if(strpos($view, '/')===0){ $view = ROOT.DS.'view'.$view.'.php'; } else { $view = ROOT.DS.'view'.DS.$this->request->controller.DS.$view.'.php'; } ob_start(); require($view); $content_for_layout = ob_get_clean(); require ROOT.DS.'view'.DS.'layout'.DS.$this->layout.'.php'; $this->rendered = true; } public function set($key, $value=null) { if(is_array($key)){ $this->vars += $key; } else { $this->vars[$key] = $value; } } }

Si une âme charitable pourrait m'apporter son aide :))

1 réponse

Konix, il y a 6 ans

Bon bhe ducoup j'ai résolu mon problème tout seul,
j'avais juste oublier un die(); a la fin de ma fonction errors.