Bonjour,
Je suis complètement débutante en mvc et j’ai suivi le tuto ‘Développer un site..’. J’ai un problème au niveau de ‘require $file’. Il me donne cette erreur (il ne semble pas reconnaitre le chemin) :
Fatal error: require(): Failed opening required '.\controller\TestMVCController.php' (include_path='.;C:\php\pear') in C:\wamp\www\testMVC\core\Dispatcher.php on line 16

Je travaille sur Wamp,en localhost.
Quelqu’un peut m’aider à trouver la source d’erreur, s’il vous plait? Merci beaucoup.

Ici, c’est la function:
function loadController(){
$name= ucfirst($this->request->controller).'Controller';
$file= ROOT.DS. 'controller' .DS. $name.'.php';
require $file;
$controller=new $name($this->request);
}

3 réponses


Bonjour,
Juste pour info, un petit 'echo' de '$file' donne quoi ?
Les seuls cas où j'ai vu ce genre d'erreur sont :

  • un problème de chemin
  • un problème de droit d'accès au fichier.
maxianna
Auteur

En effet, 'echo $file' me donne rien, seulement l'affichage de l'erreur...Jusqu’à présent, tous les url’s se sont bien affichées.
‘ TestMVC’ est mon dossier ROOT. Je ne comprends pas pourquoi il le cherche après le ‘controller’ : « .\controller\TestMVCController.php'» , quand je lui ai donné le chemin : "$file= ROOT.DS. 'controller' .DS. $name.'.php';" En plus, il ne recconnait pas le deuxieme separateur .DS.

Hello !
Un peu plus de ton code pourrait sûrement aider à ce qu'on puisse voir d'où provient l'erreur.
Apparemment, le problème est au niveau de ton ucfirst , puisque ça te retourne TestMVCController pour $name :

$name= ucfirst($this->request->controller).'Controller';
$name= TestMVC .'Controller'

"En plus, il ne recconnait pas le deuxieme separateur .DS.", si il le reconnaît puisque que tu atterris bien dans le dossier controller :

. \ controller \ TestMVCController.php
ROOT .DS. 'controller' .DS. $name .'.php'

Tu dois chercher une erreur ici : $this->request->controller , c'est cette commande qui te renvoie TestMVC