urgent : Problème de REQUIRE

Par yassinemd3, il y a 6 ans


J'ai suivi ce tuto :

Tutoriel vidéo PHP : Développer un site : Jour 2, La structure PHP

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

<?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

<?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

<?php class PagesController extends Controller{ fonction voir(){ echo 'Merci'; } } ?>

Router.php

<?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

<?php class Controller{} ?>

includes.php

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

index.php

<?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

9 réponses

olive140, il y a 6 ans

Bonjour,
Il ne trouve pas ce fichier : C:\wampserver\www\precandidature\controller\Controller.php car la variable $this->request->controller n'existe pas.

yassinemd3, il y a 6 ans

Merci pour votre réponse j'ai ecrit le même code de tuto vraiment je ne sais pas ou est la difference merci de me dire ou je peux declarer la variable

olive140, il y a 6 ans

Pouvez vous m'indiquer l'url que vous essayer de charger

Lartak, il y a 6 ans

Bonjour.
Déjà, ce n'est pas:

fonction voir() { // ... }

Mais

function voir() { // ... }
yassinemd3, il y a 6 ans

J'ai modifier "fonction" par function mais toujours il m'affiche le meme message d'erreur ci dessus sur n''importe quelle url j'ai le meme code de ce tuto

( ! ) Warning: require(C:\wampserver\www\precandidature\controller\CssController.php): failed to open stream: No such file or directory in C:\wampserver\www\precandidature\core\Dispatcher.php on line 14

yassinemd3, il y a 6 ans

Voila le Fichier .htacces qui se trouve dans la racine de mon site

RewriteEngine On RewriteRule (.*) webroot/$1 [L]

.htaccess dans webroot

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule (.*) index.php/$1 [L]
Baptiste.J, il y a 6 ans

Bonjour, j'ai exactement le même soucis et je ne trouve pas l'erreur.

KevinJ30, il y a 6 ans

Bonjour, est ce que tu as essayer de voir ou pointe la constante ROOT avec un var_dump et voir le contenu de la variable $file ?

Casimir, il y a 6 ans

bonjour je rencontre le même problème je demande de l'aide pour le resoudre