salut a tous voila j'ai fait le TP : Création des classes Table et tous ce passer bien mais j'ai mis la nouvelle variable ( App\App::getDb()) ca ma mi une erreur pk ??
lien du screen : http://i21.servimg.com/u/f21/13/68/78/96/captur13.png
merci par avance pour vos reponse :) :)
voila Lartak :) PS l'erreur survient lors de l'appel ( App\App::getDb() )
<?php
namespace App;
class App{
private static $database;
const DB_NAME = '****';
const DB_USER = '****';
const DB_PASS = '****';
const DB_HOST = '****';
public static function getDb(){
if (self::$database === null) {
self::$database = new Database(self::DB_NAME, self::DB_USER, self::DB_PASS, self::DB_HOST);
}
return self::$database;
}
}
Bonjour.
Si tu nous montrait le code qui se situe à la ligne 20 de ton fichier Autoloader.php, ça nous aiderait à mieux comprendre.
Moi pour les appel de constance j'ai toujours fait nom_class:: soit
App::DB_NAME
Sinon ça peux venir du fait que la class Database n'est pas dans le namespace
En cas poste ton code sur github.
la class database est bien dans le namespace App et j'ai fait un essai avec (App::DB_NAME) et toujours le meme probleme ,je suis perdu je trouve pas de solution :( :(
Je pense que c'est pas la class qui gerère l'erreur mais le code de l'autoload.
Tu utilises quoi comme autoload, un existant, un crée soi même.
celui en suivant le tuto de grafikart
namespace App;
class Autoloader{
static function register(){
spl_autoload_register(array(__CLASS__, 'autoload'));
// array( nom de la constante class(__CLASS__), nom de la fonction('autoload'))
}
static function autoload($class){
$class = str_replace(__NAMESPACE__, '', $class);
$class = str_replace('\\', '/', $class);
require __DIR__.'/'.$class.'.php';
}
}
Salut,
Est-ce que tu as vérifié la casse de tes dossiers, fichiers, noms de classes et namespaces ? Car ça vient souvent de là.
Beh par exemple un nom de dossier commençant par une Majuscule alors que le require commence par une minuscule.
ha ok mais DIR le recupere dynamiquement je n'est pas a men soucier normalement nn ??
Normalement non, mais vérifies quand même. Sinon, as-tu regardé le tuto en ENTIER ? Car peut-être @Grafikart a aussi eu l'erreur et explique comment la résoudre (le bougre !) :)
Merci pour le code.
voila l'Erreur : dans public/index.php
require '../app/Autoloader.php'; --> require '../App/Autoloader.php';
Ton répertoire c'est App et non app
Chez moi après ce correctif ça marche, ça me dit error connection BDD qui est normal vu que j'ai pas configurais la BDD
<?php
namespace App;
require '../App/Autoloader.php';
Autoloader::register(); // charge l'autoloader
voila le fichier index.php dand public/
oui c fait mais c bon ca venez de l'autoloder merci a tous pour votre aide :) il retirer App avant :)