CactusCrew

CactusCrew
 
Fichier de configuration d'une appli web

Une partie importante d'un fichier de configuration, c'est la liste des répertoires de l'appli. Je m'y attarde donc quelques minutes avec vous.

Principe

Soit une arborescence d'appli web telle que celle ci : (exemple)

  • ihm contiendra tout les éléments de mise en page (templates, css, medias...)
  • libs les diverses classes de l'appli
  • page les pages proprement dites.


Il nous faut connaitre les chemins de l'appli, pour, par exemple ajouter les chemins des libs dans l'include_path.

Problème

Il fut un temps où par reflex, et surtout par manque d'expérience, pour définir la constante de racine de l'appli, j'utilisais le $_SERVER'DOCUMENT_ROOT'.
Grave erreur ! Si mon appli devait être, pour une raison X ou Y, être déplacée dans un sous répertoire... plus rien ne fonctionnait.
En effet $_SERVER'DOCUMENT_ROOT', quelque soit ma position dans l'arborescence, est la racine du server web, soit par exemple /var/www/toto/www. Donc les chemins de mes libs étaient érronés... et patatra

Solution

Aujourd'hui, je lui préfere cette méthode : dirname(FILE) signifiant chemin du répertoire de ce fichier.
Quelque soit la position du globalConf (et donc de l'appli) dans l'arborescence, la racine sera correct, et ainsi que tout les chemins de l'appli.

<?php
define('SYS_ROOT', dirname(__FILE__).DIRECTORY_SEPARATOR);
 
// ihm
define('SYS_IHM', SYS_ROOT.'ihm'.DIRECTORY_SEPARATOR);
define('SYS_TPL', SYS_IHM.'tpl'.DIRECTORY_SEPARATOR);
// etc...
 
define('SYS_LIB', SYS_ROOT.'libs'.DIRECTORY_SEPARATOR);
//etc...
?>

 
PDF
« retour à l'accueil
Commentaires
1.   Nicolas  |  mercredi 14 février 2007 à 10:31

Ouais, tu as raison,c'est mieux...

 
2.   Peter  |  dimanche 25 mars 2007 à 17:54

Perso je limte la profondeur de l'arbo dans ihm à un seul niveau pour les catégories (flash et images sont donc à la racine de ihm) et j'en profite pour diviser ensuite le dossiers images en sous repertoires : interface / icons / bannieres / etc...

 
3.   Tatane  |  mardi 17 avril 2007 à 15:27

Et comment inclus-tu ton globalConf dans un fichier plus profond ds ton arbo (genre dans "pages") ?

Vu que normallement on faisait un :
require_once $_SERVER['DOCUMENT_ROOT'].'/globalConf.php';

??

parce que du coup ton truc sert plus à rien !

ton truc marche si tout passe par l'index avec un aiguillage façon MVC derrière, comme tu inclus ton globalConf une seule fois ... sinon t'es mort ...

 
4.   nico  |  mardi 17 avril 2007 à 15:52

Facile ! tu connais '..' ?

:P !

 
« retour à l'accueil
Trackbacks

Aucun trackback.

Pour faire un trackback sur ce billet : http://www.blog.cactuscrew.com/tb.php?id=83&chk=jqrnz3

 
Ajouter un commentaire