Salut a tous voila j'ai décider de faire les tutos sur Développer un site mais a peine commencer je bloque sur le 2 jour

Voila l'erreur tout fonctionner aprés avoir creer la fonction :function loadController a la 28e min cela m'affiche:

Warning: require(C:\wamp\www\tuto\site\controller\Controller.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\tuto\site\core\Dispatcher.php on line 22

voici mon includes.php

<?php 
require 'Request.php';
require 'Router.php';
require 'Controller.php';
require 'Dispatcher.php';

Le dispatcher.php

<?php
/**
* Dispatcher
* Permet de charger le controller en fonction de la requête utilisateur
**/
class Dispatcher {
    var $request;
    /**
    * Fonction principale du dispatcher
    * Charge le controller en fonction du routing
    **/
    function __construct(){
            $this->request=new Request();
            Router::parse($this->request->url,$this->request);
            $controller=$this->loadController();
            $controller->view();
        }
        function loadController(){
            $name = ucfirst($this->request->controller).'Controller';
            $file=ROOT.DS.'controller'.DS.$name.'.php';
            require $file;
            $controller=new $name($this->request);
        }
}

ainsi que PagesController.php

<?php
class PagesController extends Controller{
    function view(){
        echo 'Vous voyez?';
    }

}

Et oui j'en suis que la je prend mon temps et j'ai envie de comprendre :-)
voila si quelqu'n peut m'aide rmerci

en cherchant dans le forum j'ai vu que la question a etait poser Ancienne reponse
mais je l'a comprend pas

11 réponses


je transmet l'url dans laquelle tombe le message d'erreur:

http://localhost/tuto/site/

ainsi que mon fichier webroot/index

<?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();
        ?>

Voila,j'espere avoir tout dit
Merci de votre aide

merci de ta reponse mais le probleme ne change pas

Warning: require(C:\wamp\www\tuto\site\core\controller\Controller.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\tuto\site\core\Dispatcher.php on line 22

non toujours pas il m'affiche toujours

Warning: require(C:\wamp\www\tuto\site\controller\ControllerController.php) [function.require]: failed to open stream: No such file or directory in C:\wamp\www\tuto\site\core\Dispatcher.php on line 22

laisser ton code comme ça

$file = ROOT.DS.'controller'.DS.$name.'.php';

le probléme vient de l'url
http://localhost/tuto/site/ pages / view

attend j'essaie de modifier l'url

peut tu m'en dire plus je n'avais pas de fichier page je viens d'en cree un et inseree le fichier view dedans mais le probleme persiste

Continue le tutoriel, ils restent plein de choses pour avoir afficher ta page.

aussi tu doit indiquer a ton système le Controller et l'action que tu veux qu'il faire.
localhost/tuto/site/ici le nom du controller/ici le nom de l'action

voici comment est composer mon fichier:
tuto:
|_site
|___controller/PagesController.php
|___core/Controller.php/Dispatcher.php/includes.php/Request.php/Router.php
|___model
|___pages/view
|__webroot/js/img/css/.htaccess/index.php
|__.htaccess

voila si cela vient de l'url ?????

oui l'erreur vient toujours de l'url, si tu fait seulement localhost/tuto/site/
le Dispatcher ne sait rien de l'url.

c'est vrai RedaElkhayat je tombe tout le temps sur localhost/tuto/site/ voila comment puis je resoudre ce probleme au niveau du Dispatcher et pourquoi? j'ai biens suivi le tuto