Bonjour,
je suis actuellement le tutoriel php jour 2 et j'ai une erreur du a load controller dans mon dispatcher :

( ! ) Fatal error: Call to undefined method Dispatcher::loadControler() in C:\wamp\www\emmy\core\Dispatcher.php on line 9
Call Stack

Time Memory Function Location

1 0.0004 245864 {main}( ) ..\index.php:0
2 0.0020 268832 Dispatcher->__construct( ) ..\index.php:8

pouvez-vous m'aider ?

12 réponses


Carouge10
Réponse acceptée

Alors la ligne n°9 appele la function qui commence à la ligne n°15 donc elle doit se nommer pareil....

Bonsoir,
Avec le code du Dispatcher ça pourrait mieux aider.... (^_^)

<?php
class Dispatcher{

var $request;

function __construct(){
    $this->request = new Request();
    Router::parse($this->request->url,$this->request);
    $controller = $this->loadControler();
    print_r(get_class_metods($controller)); die();
    call_user_func_array(array($controller,$this->request->action),$this->request->params);
    $controller->render($this->request->action);
}

function loadController(){
    $name = ucfirst($this->request->controller).'Controller';
    $file = ROOT.DS.'controller'.DS.$name.'.php';
    require $file;
    return new $name($this->request);
}

}
?>

Je vous invite a relire l'appel que vous avez fait et le nom de la fonction...

oui j'ai bien relus et mon nom de fonction est correct

Pour moi, ceci

$controller = $this->loadControler();

est différent de

function loadController(){

je suis d'accord mais dans les instructions ils le marque comme ca et ca marche donc quelle est mon erreur ?

Vous le faites exprès ? C'est pas possible... un peu de logique.

non je vous assure je ne le fait pas expret mais je suis debutant en php.

merci !!!!

Si vous n'arrivez pas à résoudre ce problème extrèmement basique, je vous conseil de voir les bases du php avant de passer à ce type de formation.

je vais y songer mais comme on dit on apprends de ses erreurs et c'est en pratiquant que j'appprends