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é:

( ! ) 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
ET voilà mon code :

Dispatcher.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);
    }
 
}
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
 
<?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;
 
    }
}
 
?>
PagesController.php

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';
        }
    }
 
?>
[B]Router.php/B]

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 ;
    }
}
 
?>
Controller.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<?php
 
class Controller{}
 
 
?>
includes.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';
 
?>
index.php

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();
?>
Mon arborescence est :

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