TP : Création des classes Table( probleme App.php)

Par jbdfjojo, il y a 10 ans


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 :) :)

22 réponses

Lartak, il y a 10 ans

Bonjour.
Si tu nous montrait le code qui se situe à la ligne 20 de ton fichier Autoloader.php, ça nous aiderait à mieux comprendre.

jbdfjojo, il y a 10 ans

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; } }
kadevland, il y a 10 ans

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.

jbdfjojo, il y a 10 ans

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 :( :(

kadevland, il y a 10 ans

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.

jbdfjojo, il y a 10 ans

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'; } }
kadevland, il y a 10 ans

As tu moyen de donnée tout ton code sources, il doit avoir un problème allieur

betaWeb, il y a 10 ans

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à.

jbdfjojo, il y a 10 ans

oui j'ai verifier et quand t'en tu par casse de tes dossiers??

betaWeb, il y a 10 ans

Beh par exemple un nom de dossier commençant par une Majuscule alors que le require commence par une minuscule.

jbdfjojo, il y a 10 ans

ha ok mais DIR le recupere dynamiquement je n'est pas a men soucier normalement nn ??

betaWeb, il y a 10 ans

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 !) :)

jbdfjojo, il y a 10 ans

nn justement chez lui ca marche direct c ca que je ne comprend pas

betaWeb, il y a 10 ans

C'est quel chapitre ?

kadevland, il y a 10 ans

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

jbdfjojo, il y a 10 ans

nn ca te marche pas ps ca marche chez toi ??

kadevland, il y a 10 ans

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

kadevland, il y a 10 ans
<?php namespace App; require '../App/Autoloader.php'; Autoloader::register(); // charge l'autoloader

voila le fichier index.php dand public/

jbdfjojo, il y a 10 ans

oui c fait mais c bon ca venez de l'autoloder merci a tous pour votre aide :) il retirer App avant :)

betaWeb, il y a 10 ans

Passe ton sujet en résolu ;)