chemins avec require_once

chemins avec require_once - PHP - Programmation

Marsh Posté le 05-04-2006 à 16:06:32    

Bonjour,
 
je bosse actuellement sur un projet pour un stage. Je tente de comprendre les scripts qui ont déjà été écris.
Dans le index.php que j'examine, au tout début, il y a:

Code :
  1. // Charge la déf de la classe Template
  2. require_once ('Template/Template.inc');
  3. // inclusion objet dbConnection pour bien se connecter
  4. require_once ('dbClasses.inc');
  5. // inclusion du pageLayout pour faire des pages toutes zolies
  6. require_once ('pageLayout.inc');
  7. // inclusion des classes meta
  8. require_once ('metadata.inc');


Ne vous préoccupez pas de ce que ca veut dire. Mon probleme est que les fichiers inclus ne se trouvent pas tous au même endroit. Je crois avoir entendu qu'il fallait configurer un path quelque chose. Mais normalement, les 3 derniers fichiers inclus devraient être au même endroit non? pourtant ce n'est pas le cas. Peut-on m'expliquer pourquoi?
 
merci  :jap:


Message édité par welcominh le 05-04-2006 à 16:06:54

---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 05-04-2006 à 16:06:32   

Reply

Marsh Posté le 05-04-2006 à 16:23:40    

Dans ton php.ini tu vas trouver une directive "include_path" qui determine tous les repertoires ou php est succeptible d'aller chercher des fichiers lors d'un include/require.
 
C'est ce qui peut expliquer que tu ais :
 
    require_once 'a.inc';
    require_once 'b.inc';
 
alors que a.inc et b.inc ne sont pas dans le meme repertoire.

Reply

Marsh Posté le 06-04-2006 à 11:40:26    

ah okéééééééééééééééé merci  :)  
 
sinon j'ai une autre question. Le "require_once ('pageLayout.inc');" ne prend pas le fichier dans le même répertoire que les autres. Alors qu'un fichier 'pageLayout.inc' y est pourtant bien présent (j'ai vérifié avec quelques tests, ce n'est pas celui du dossier courant qu'il utilise).  
En gros comment php fait-il pour savoir qu'il ne faut pas inclure le 'pageLayout.inc' du dossier courant et prendre celui d'un autre dossier?


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Marsh Posté le 06-04-2006 à 12:01:55    

Si tu as 2 fichiers qui ont le meme nom dans 2 repertoires d'inclusion, la priorite est etablie en fonction de l'ordre dans lequel sont specifies les paths dans la directive "include_path"
 
exemple avec:

Code :
  1. include_path = ".:/path1:/path2";


 
Si je fais un include/require d'un fichier a.inc qui se trouve dans ces 3 repertoires, c'est la version qui se trouve dans "." qui sera inclue en priorite.


Message édité par Woutcha le 06-04-2006 à 12:02:21
Reply

Marsh Posté le 06-04-2006 à 15:55:54    

ah okééééééééééééééééééé (bis)  :)  
merci beaucoup j'y vois plus clair maintenant  :jap:


---------------
Direct-download.com, le moteur de recherche pour Mega
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed