Bonjour, j'ai un petit probléme que je n'arrive pas à résoudre merci de bien vouloir m'aider.
Erreur afficher par PHP:
Parse error: syntax error, unexpected '$name' (T_VARIABLE), expecting identifier (T_STRING) in /home/mehdi/app/Dispatcher.php on line 21
Mon code:
public function loadController()
{
$name = ucfirst($this->request->controller).'Controller.php';
require ROOT.DS.'controllers'.DS.$name;
return new \Controllers\$name($this->request);
}
et je me trouve dans le namespace App;
lorsque je fait :
return new \Controllers\HomeController()
Sa marche mais j'ai besoin de definir le controller dynamiquement donc j'ai impérativement besoin de la variable.
@Uneo7 ton code ne marche pas, j'ai trouvé une solution j'ai finalement crée une instance de la class en static puis fait un retour de cette instance.
Merci quand même :p
Segmente l'appel, php ne gère pas les appel direct en dur avec des variables et du texte :p
$controller = "Controllers\\" . $name;
$controller = new $controller();
return call_user_func_array($controller, $this->matches);
Oui je suis con x) j'ai repris de mon code sans virer le call_user_func et en plus j'ai foiré sur une variable.
$controller = "Controllers\\" . $name;
return new $controller($this->request);