Problème avec controller.php dans la vidéo Tutoriel PHP - Développer un site : Jour 2, La structure PHP erreur :
! ) Notice: Trying to get property of non-object in C:\wamp\www\Tuto\Site\core\Controller.php on line 13
Call Stack
Time Memory Function Location
1 0.0009 245512 {main}( ) ..\index.php:0
2 0.0037 269424 Dispatcher->__construct( ) ..\index.php:9
3 0.0042 275864 call_user_func_array:{C:\wamp\www\Tuto\Site\core\Dispatcher.php:10} ( ) ..\Dispatcher.php:10
4 0.0043 276240 PagesController->view( ) ..\Dispatcher.php:10
5 0.0043 277240 Controller->render( ) ..\PagesController.php:
Bonjour pour commencer ;)
Ensuite, l'erreur parle d'elle-même: tu as oublié d'instancier ta classe quelque part visiblement.
C bon c régler merci mais maintenant il me marque ca :
( ! ) Warning: require(C:\wamp\www\Tuto\controller\ViewController.php): failed to open stream: No such file or directory in C:\wamp\www\Tuto\core\Dispatcher.php on line 16
Call Stack
1 0.0006 245416 {main}( ) ..\index.php:0
2 0.0029 269312 Dispatcher->__construct( ) ..\index.php:9
3 0.0029 270440 Dispatcher->loadController( ) ..\Dispatcher.php:9
( ! ) Fatal error: require(): Failed opening required 'C:\wamp\www\Tuto\controller\ViewController.php' (include_path='.;C:\php\pear') in C:\wamp\www\Tuto\core\Dispatcher.php on line 16
Call Stack
1 0.0006 245416 {main}( ) ..\index.php:0
2 0.0029 269312 Dispatcher->__construct( ) ..\index.php:9
3 0.0029 270440 Dispatcher->loadController( ) ..\Dispatcher.php:9
Regarde si tu n'as pas de soucis de nommage de tes fichiers. J'avais souvent ce genre d'erreur lorque j'ai commencé à coder en PHP et c'est très souvent à du à la casse (minuscules / Majuscules) !
Alors:
ca te derange de juste regarder mon code et ma structure ? car pour moi tout est bon ....
ok, le dispacher est stocké dans wamp/www/Tuto/core/Dispacher.php
Dispacher.php :
<?php
class Dispatcher {
var $request;
function __construct(){
$this->request = new Request();
Router::parse($this->request->url,$this->request);
$controller = $this->loadController();
call_user_func_array(array($controller,$this->request->action),$this->request->params);
}
function loadController(){
$name = ucfirst($this->request->controller).'Controller';
$file = ROOT.DS.'controller'.DS.$name.'.php';
require $file;
return new $name($this->request);
}
}
?>
j'en suis qu'au jour 2 ....
Beh voilà d'où vient le problème; Tu essayes d'appeler un fichier qui n'existe pas. Donc PHP te retourne une erreur c'est évident.
Pour n'existe-t-il plus ?
Je n'en sais rien je n'ai jamais fait cette formation.
Mais si ce fichier a été créé c'est pour quelque chose. Donc il te faudra le recréer pour que ça re-fonctionne.