J'ai suivi un tuturiel sur
mais toujours il m'affiche le même message d'erreur ci dessus sur n''importe quelle URL j'ai le même code de ce tuto
Voici les erreurs qui me sont retourné:
ET voilà mon code :( ! ) Warning: require(C:\wampserver\www\precandidature\controller\Controller.php): failed to open stream: No such file or directory in C:\wampserver\www\precandidature\core\Dispatcher.php on line 14
( ! ) Fatal error: require(): Failed opening required 'C:\wampserver\www\precandidature\controller\Controller.php' (include_path='.;C:\php\pear') in C:\wampserver\www\precandidature\core\Dispatcher.php on line 14
Dispatcher.php
Request.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php class Dispatcher{ var $request; function __construct(){ $this->request = new Request(); Router::parse($this->request->url,$this->request); $controller = $this->LoadController(); $controller->voir(); } function LoadController(){ $name = ucfirst($this->request->controller).'Controller'; $file = ROOT.DS.'controller'.DS.$name.'.php'; require $file; return new $name($this->request); } }
PagesController.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <?php class Request{ public $url; // URL appelé par l'utilisateur function __construct(){ $url = (isset($_SERVER['PATH_INFO']) ? $_SERVER['PATH_INFO'] : substr($_SERVER['REQUEST_URI'], strlen(BASE_URL)-strlen($_SERVER['REQUEST_URI']))); $this->url = $url; } } ?>
[B]Router.php/B]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php class PagesController extends Controller{ fonction voir(){ echo 'Merci'; } } ?>
Controller.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php class Router{ static function parse($url,$request){ $url = trim($url,'/'); $params = explode('/',$url); $request->controller = $params[0]; $request->action = isset($params[1]) ? $params[1] : 'index'; $request->params = array_slice($params,2); return true ; } } ?>
includes.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?php class Controller{} ?>
index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php require 'Request.php'; require 'Router.php'; require 'Controller.php'; require 'Dispatcher.php'; ?>
Mon arborescence est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php define('WEBROOT', dirname(__FILE__)); define('ROOT', dirname(WEBROOT)); define('DS', DIRECTORY_SEPARATOR); define('CORE', ROOT.DS.'core'); define('BASE_URL', dirname(dirname($_SERVER['SCRIPT_NAME']))); require CORE.DS.'includes.php'; new Dispatcher(); ?>
0-www
1-precandidature
2-controller -> PagesControllers.php
2-core -> Controller.php + Dispatcher.php + Router.php + Request.php + includes.php
2-model
2-view
2-webroot -> css + img + js + index.php + .htaccess
.htaccess
Partager