J'ai résolu cette question à moi. Le nom de fichier était faux lolz.
Bonjour tout le monde! P>
Je construis un CMS comme Drupal et Joomla. Je travaille sur la fonction de module (plugins) et j'ai eu l'erreur suivante: p> voici mon code: p> start.php < / p> paramètres.php p> core.php p> view.php p> start.php est évidemment exécuté en premier. Les autres pages ne sont pas exécutées avant cela, sauf les douanes .php contenant des informations de base de données. Si j'utilisais $ _Server ["db_prefix"] dans mon code ci-dessus, c'est parce que j'avais besoin d'un superglobal qui est défini dans la douane.php: p> douanetings.php p> Quelqu'un peut-il m'aider? Il semble que la fonction d'indice de vue.php est appelée avant les paramètres.php est incluse. Désolé si cette question est énorme, je veux juste être claire. Je ne dis pas non plus Eval (), je sais. P> Donc, je veux savoir pourquoi la classe de réglages n'a pas pu être trouvée. Si vous avez besoin de plus de code source, veuillez commenter cette question. P> p>
5 Réponses :
Bien que vous attendiez des paramètres.php à être disponibles pour voir.php car il a été inclus dans un script qui les inclut les deux, j'ai constaté que cela n'était généralement pas le cas. Vous avez quelques choix: P>
require_once code>
Tous les fichiers chacun Les besoins de la classe dans chaque fichier de classe LI>
__ autoload () code>
fonction de sorte que PHP puisse trouver toutes vos classes chaque fois que cela le pense besoin d'un li>
ul>
La 2e option est plus flexible. P>
Si vous souhaitez connaître des cours sont disponibles à partir d'un endroit particulier, essayez la sortie get_declared_classes () code>
p>
Désolé, même y compris les paramètres.php dans la vue.php ne fonctionne pas: s
Je sais ce que j'ai mal fait. Mon nom de fichier est faux. Lolz
+1 pour print_r (get_declared_classes ()) Suggestion
Juste au cas où quelqu'un trébuche sur cette question, j'ai également eu ce problème et je l'ai résolu en veillant à ce que le nom du fichier PHP était identique au nom de la classe PHP à l'intérieur du fichier actuel. P>
idiot, je sais. P>
Le nom du fichier ne comporte pas nécessairement. Cela pourrait dépendre de votre autochargeur.
hmm bizarre. Merci de me le faire savoir. Je suis certain que cela résolue le problème pour moi, dans tous les cas. J'utilisais Eclipse avec les paramètres par défaut.
Il y a un autre problème qui peut se produire et cela vaut la peine de le savoir. Si vous utilisez __AutoLoad () et dans le fichier qui détient la charge de la charge de la société, vous écrivez incorrectement vos balises PHP, il renvoie une erreur de classe non trouvée:
fichier app.php p> fichier index.php p> Le code ci-dessus ne fonctionne pas. Pour qu'il fonctionne, vous devez remplacer l'ouverture courte PHP Tag APPL.php avec un long: P> <?php
class App extends something
{
function __construct()
{
}
}
?>
Ce qui suit n'appre pas dans le cas de OP mais pourrait aider les autres. P>
Vérifiez si votre code utilise des balises courtes Par défaut, il est désactivé mais si vous héritez votre installation PHP de quelqu'un d'autre ... P> code> au lieu de
php code> et si oui, vérifiez votre php.ini pour
short_open_tag code> Réglage. P>
Cela peut arriver très facilement si vous passez à un nouveau serveur où le fichier php.ini a probablement des paramètres différents - Great Catch @konstantin.
J'ai eu le même problème. Parfois, c'est un problème avec le chemin.
au lieu de: p> Essayez: p>
Stupide tel qu'il est, j'ai également eu une question de dénomination. Oublié le .php.