On ne se comprend pas, je pense.
Faut être clair, ta classe Config est certes le seule, je dirais plutôt le 1er include() qui n'est pas configurable, d'accord, mais pour pouvoir l'inclure, il te faut avant tout un chemin. Il faut que Php sache où la chercher, du moins son fichier.
Le fait d'utiliser $_SERVER['DOCUMENT_ROOT'] pour l'inclure, veut dire que tu connais son chemin, sinon tu ne l'utiliserais pas.
Après, que tu veuille stocker ce chemin dans une autre config, autre que $_SERVER['DOCUMENT_ROOT'] (pour des raisons pratiques), pourquoi pas, mais de toute manière, le chemin physique est connu, peut être obtenu, dès la 1ère ligne de code, quelque soit le fichier (php).
Tu peux donc initialiser ta config avant même inclure la classe, c'est une certitude.
Il n'y a donc pas lieu de vouloir tenter de ré-interpréter une donnée connue d'avance.
[...]
Enfin bref ... tout ça pour dire qu'à mon sens tu tente de définir quelque chose de connu.
Faire comme ceci reviendrait au même
1 2 3 4 5 6
| <?php
require_once($_SERVER['DOCUMENT_ROOT'] . "/config/Config.inc"); // Le seul require_once() "en dur"
$includes = Config::getInstance()->getIncludes();
$includes['main'] = $_SERVER['DOCUMENT_ROOT'];
require_once($includes['main'] . '/essai.inc');
?> |
Ce qui fait que tu peux te passer du noeud "main" qui se trouve dans le xml.
Partager