|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 30 ![]() |
Bonjour, j'aimerais avoir des précisions à propos du fonctionnement de require_once si ce n'est pas trop abusé. ^^
J'avoue avoir beaucoup de mal à comprendre. ![]() Tous mes fichiers de classes php sont dans le même dossier, et j'exécute un script php qui se trouve également dans ce dossier. Chaque classe utilise un ... ... pour les classes qu'elle utilise ou celle qu'elle étend. Et malgré celà j'ai toujours ce genre d'erreur... Code :
Fatal error: Class 'UneCLasse' not found in File.php on line X Un autre truc bizarre est que si dans une classe j'importe une classe qui étend la première j'aurais dans la seconde cette erreur, ce qui fait qu'en enlevant l'inclusion de la seconde dans la première je résoud l'erreur dans la seconde. J'ajoute aussi que je teste ça en localhost, donc c'est peut être lié à une histoire de chemin absolu/relatif mais je n'arrive pas à comprendre pourquoi, d'autant que si je peux instancier une classe dans le script, en principe une classe qui étends cette classe ne devrait pas rencontrer ce problème.. Donc bref je nage complétement, donc si vous aviez quelques explications ou un petit lien vers une doc un peu plus détaillée ça m'aiderait. |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() Arthur SalomonDéveloppeur du dimanche Inscription : juillet 2009 Messages : 592 ![]() |
Bonjour,
Pourquoi tu n'utilises pas l'autoload pour charger tes classes ? Ça t'éviterait les include, require...etc sans parler des éventuels oublis : http://php.net/manual/fr/language.oop5.autoload.php Au passage je ne sais pas si c'est volontaire ou pas pour le post, mais tu as une erreur de syntaxe : |
|
|
00
|
|
|
#3 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Les parenthèses ne sont pas nécessaires.
|
|
|
00
|
|
|
#4 | ||||
|
Membre éclairé
![]() Webmaster Inscription : février 2007 Messages : 261 ![]() |
Tout dépend où se trouve ton script quand tu appelles tes classes, par exemple, si tu te trouve dans index.php à la racine et que tu veux appeller une classe qui se trouve dans le répertoire classes:
Code :
Code :
|
||||
|
|
00
|
|
|
#5 |
![]() ![]() Vincent Inscription : juillet 2005 Messages : 14 929 ![]() |
Le problème ne doit pas venir du require car le script s'arreterait la.
|
|
|
00
|
|
|
#6 | |
|
Invité régulier
![]() Inscription : juillet 2004 Messages : 30 ![]() |
En fait j'avais aspiré cette doc il y a un moment et dans ma version la première note disait le contraire.
Avec l'autoload ça marche mieux, j'ai enlevé tous les require de toutes les classes sinon ça coinçait encore parfois, merci. Citation:
J'ai revu un peu aussi la gestion globale des erreurs fatales et avertissements, c'est hallucinant comment PHP dégaine vite. ^^ Merci pour vos réponses. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com