REQUIRE dans la structure MVC
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é:
Citation:
( ! ) 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:
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:
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:
1 2 3 4 5 6 7 8 9
|
<?php
class PagesController extends Controller{
fonction voir(){
echo 'Merci';
}
}
?> |
[B]Router.php/B]
Code:
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:
1 2 3 4 5 6 7
|
<?php
class Controller{}
?> |
includes.php
Code:
1 2 3 4 5 6 7 8
|
<?php
require 'Request.php';
require 'Router.php';
require 'Controller.php';
require 'Dispatcher.php';
?> |
index.php
Code:
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