Bonjour,
Je suis bloqué au chapitre 12 de la formation, je tourne en rond depuis plusieurs heures et je suis au bord du découragement.
mon arborescence est :
www/open/app/autoloader.php
www/open/public/index.php
j'ai une erreur dans mon navigateur :
Warning: require(D:\wamp64\www\open\app/.php): failed to open stream: No such file or directory in D:\wamp64\www\open\app\autoloader.php on line 23
Voilà mon index.php
<?php
require '../app/autoloader.php';
App\Autoloader::register();
if (isset($_GET['p'])){
$p = $_GET['p'];
}
else {
$p = 'home';
}
// INITIALISATION DES OBJETS :
$db = new App\Database('xxxxxxxx');
ob_start(); // Permet de mettre dans la variable content la page à afficher pour ne pas avoir à réécrire les head ...
if ($p === 'home'){
require '../pages/home.php';
}
elseif ($p === 'single'){
require '../pages/single.php';
}
$content = ob_get_clean();
require '../pages/template/default.php';
?>
Et mon autoloader.php
<?php
namespace App;
/**
* Class Autoloader
*/
class Autoloader{
/**
* Enregistre notre autoloader
*/
static function register(){
spl_autoload_register(array(__CLASS__, 'autoload'));
}
/**
* Inclue le fichier correspondant à notre classe
* @param $class string Le nom de la classe à charger
*/
static function autoload($class){
if (strpos($class, __NAMESPACE__.'\\') === 0){
$class = str_replace(__NAMESPACE__, '\\', '', $class);
$class = str_replace('\\', '/', $class);
require __DIR__ . '/' . $class . '.php';
}
}
}
?>
Avez-vous une idée ?
Je ne sais pas si l'auteur suis encore ce topic, mais remplace 0 par null à cette ligne :
if (strpos($class, __NAMESPACE__.'\\') === 0){
la ligne suivante me parait suspecte
$class = str_replace(__NAMESPACE__, '\\', '', $class);
le 4em argument est censé être un count mais là il y a $class !!!
Oui, sans doute:
$class = str_replace(__NAMESPACE__.'\\', '', $class);
( . au lieu de , )
;-)...
Salut
remplace : $class = str_replace(NAMESPACE, '\', '', $class); par
$class = str_replace(NAMESPACE . '\', '', $class);
Après NAMESPACE tu as mis une virgule lieu d'un point.
Alain