Bonjour,
Voila je rencontre un petit problème avec mon code.
Je suis en train de réaliser le tutoriel concernant la programmation orientée object en PHP. J'en suis à la partie sur le refactoring.
J'ai un problème concernant la class PostEntity...
L'autoloader n'arrive pas à charger le bon chemin du fichier, au lieu de mettre :
C:\xampp\htdocs\blog\app/entity/ArticleEntity.php, il me met :
Warning: require(C:\xampp\htdocs\blog\app/tables/ArticleEntity.php): failed to open stream: No such file or directory in C:\xampp\htdocs\blog\app\Autoloader.php on line 17
J'ai vu que pas mal de personne avait eu des problèmes concernant l'autoloader, mais pas sur ce fichier. J'ai pourtant bien spécifié le namespace de mon fichier, mais aucun moyen que cela y fasse quelque chose.
Si quelqu'un à eu l'erreur, je suis preneur :)
PS : Auparavant sur la constante ROOT, j'avais une erreur aussi de chemin. J'ai du rajouté le nom de mon dossier contenant mes sources pour que cela marche correctement :
define('ROOT', dirname(__DIR__) . '/blog');
Vu qu'elle est utilisé dans l'autoloader, je le met au cas où.
Merci de vos réponses, n'hésitez pas à me demander plus de renseignements car je vois pas trop quoi vous mettre en plus car sinon j'ai la même chose que lui...
Merci à tous,
Cordialement,
Guillaume
Bonjour.
Soit tu fais une erreur dans ton explication ou alors tu as tout simplement fait une erreur dans ton code :
J'ai un problème concernant la class PostEntity...
Alors que l'erreur qui t'es retournée dit :
Warning: require(C:\xampp\htdocs\blog\app/tables/ArticleEntity.php)
Donc si tu demandes la classe ArticleEntity alors que tu veux la classe PostEntity, il est normal que tu aies un problème.
Salut,
Désolé du double postes et merci de ta réponse.
Non en faite j'ai écrite en français mes noms de class, donc pour ma part c'est ArticleEntity mais c'est exactement la même que PostEntity.
J'ai mis le nom PostEntity dans mon article pour ceux qui aurait déjà fait le tutoriel avec cette erreur.
EDIT : Je viens de trouver pourquoi j'ai ce chemin là (en lachant la chose un peu, on trouve plus facilement :) )
Cela correspond à la fonction Query :
public function query($statement, $attributes = null, $one = false)
{
if($attributes === null)
{
return $this->db->query($statement, str_replace('Table', 'Entity', get_class($this)), $one);
}
else
{
return $this->db->prepare($statement, $attributes, str_replace('Table', 'Entity', get_class($this)), $one);
}
}
J'ai du loupé quelque chose dans la précipitation ;)