Bonjour à tous. J'ai un petit soucis à partir de la 34°mn du tuto.
En effet, lorsque je require le $view du PagesController j'ai le droit au message :
Warning: Controller::require(/htdocs/web/beta/view/pages/index.php) [controller.require]: failed to open stream: No such file or directory in /htdocs/web/beta/core/Controller.php on line 12
Voici mon Controller :
<?php
class Controller{
public $request;
function __construct($request){
$this->request = $request;
}
public function render($view){
$var
$view = ROOT.DS.'view'.DS.$this->request->controller.DS.$view.'.php';
require($view);
die($view);
}
}
?>
& le PagesController :
<?php
class PagesController extends Controller{
function view($nom){
$testretour = 'bienvenue sur la page '.$nom;
$this->render('index');
}
}
?>
J'ai fait le tour de la question & téléchargé les sources & j'ai toujours le même problème...
Merci à toutes les personnes qui prendront quelques minutes pour y répondre...
ARRGGHHHHHHH
Hein grosseu error d'amateur,
mon fichier index n'existait pô, je suis nul, nul, nul...
Désolé d'avoir pollué votre temps...
& encore merci à toi Extra
salut,
je vois que ton chemin commence par htdocs, donc je supposes que tu n'es pas sur windows, donc peut être une base unix là derrière.
vérifie donc si tu as pas un problème de chemin, genre une majuscule quelque part et change en conséquence. car sur windows ça n'a aucune importance mais chez les autres c'est crucial, donc si tu respectes les majuscules tu seras compatible partout
a+
Merci Extrarox, j'ai en effet déjà vérifié les majuscules. Au début j'avais un problème de directory que j'ai résolu ainsi :
Dans mon Index.php :
<?php
define('DS',DIRECTORY_SEPARATOR);
define('WEBROOT',str_replace(DS.'htdocs'.DS.'web','http://www.monsite.fr',dirname(\_\_FILE\_\_)));
define('ROOT',dirname(WEBROOT));
define('CORE',ROOT.DS.'core');
define('BASE_URL','www.monsite.fr'.DS.'beta');
require CORE.DS.'includes.php';
new Dispatcher();
?>
puis dans request :
<?php
class Request{
public $url;
function __construct(){
$this->url = str_replace(DS.DS,DS,$_SERVER'ORIG_PATH_INFO']);
}
}
?>
Ca a corrigé tous mes problèmes jusqu'à que j'écrive dans le controller : require($view)
Le message indique (je crois) qu'il ne trouve pas $view dans le PagesController.
si je supprime require($view), j'obtiens :
/htdocs/web/beta/view/pages/index.php
ce qui veux dire qu'il exécute la fonction view($nom) du PagesController...
J'espère avoir été assez clair dans mon explication...
Merci encore pour cette réponse rapide...