Re: Architecture des dossiers

Olivier Pascal <[email protected]> Mon, 22 Mar 2004 17:10:20 +0400
Newsgroups gmane.comp.web.blogv2.devel
Message-ID <[email protected]>
Le Dimanche 21 Mars 2004 23:14, Eric Daspet a écrit :
> Olivier Pascal wrote:
> > /lib
> > pour les diverses classes natives, utilisables par tous les modules.
> > Exemple : IniHandler, DataFile, Controler, Module, etc. On peut
> > éventuelement gérer des catégories de classes avec des sous-dossiers,
> > exemple : /lib/Security, /lib/Sql, etc.
>
> Les sous répertoires sont possibles mais ils impliquent alors de charger
> les définitions de classe manuellement, sans l'auto-load (qui ne
> pourrait pas savoir dans quel répertoire aller.

J'ai déjà réfléchi à une solution (pas forcemment la plus adaptée) :

PremiÚre étape, repérer les différentes classes par leurs paths avec 
respectivement glob('/lib/*.class.php') et glob('/lib/*/*.class.php'). 
DeuxiÚme solution pour gérer plus de niveaux, on parcours manuelement par 
récurrence les sous-dossiers.

DeuxiÚme étape, fusionner les deux tableaux formés (si on a utilisé glob()), 
exemple :
SqlTruc => ./lib/sql/SqlTruc.class.php
IniMachin => ./lib/conf/IniMachin.class.php

TroisiÚme étape, définir la fonction __autoload qui lit directement dans le 
tableau la bonne clé pour l'associer au bon path.


Maintenant il faut trouver un bon compromis entre la flexibilité et la 
rapidité d'exécution même si perso je pense que le temps de parcours par 
récurrence des sous-répertoires est négligeable.


-- 
Olivier Pascal