Administrateur PHPfrance |
13231 Messages
24 mars 2010, 16:13
justement, c'est là tout le soucis.
On reprend.
Voici l'arborescence de base :
Code : Tout sélectionner
base/
libs/
classe1.class.php
classe2.class.php
actions/
action.class.php
controler.php
imaginons que tu commences à développer ta classe2, et que tu rendes compte que tu ais besoin de la classe1.
Tu vas donc commencer le fichier "classe1.class.php" comme suit :
<?php
// base/lib/classe1.class.php
require_once('classe2.class.php');
// ...
Du coup, si tu exécutes le fichier "classe1.class.php", tout va fonctionner.
Maintenant, tu as terminé ta classe1, tu veux l'utiliser.
Tu ouvres donc le fichier "action.class.php", et tu inclus la classe1 (à ce moment, tu ne te rappelles même plus que tu as besoin de classe2 pour utiliser classe1), comme suit :
<?php
// base/action/action.class.php
require_once('../lib/classe1.class.php');
// ...
Et là, c'est le drame, il te dit qu'il ne peut trouver le fichier classe2, et il te montre qu'il la cherché au chemin "base/action/classe2.class.php". Tout ça parce que le require, si le chemin n'est pas absolue, recherche relativement au dossier contenant le
fichier de base (soit, dans notre cas, "base/action"). Et, du coup, le require_once('classe2.class.php') ne fonctionne pas.