Re: Test du nouveau type d'évenemen t
Eric Daspet <[email protected]> Thu, 08 Apr 2004 22:53:49 +0200
| Newsgroups | gmane.comp.web.blogv2.devel |
|---|---|
| Message-ID | <[email protected]> |
Olivier Pascal wrote: > Ok, je comprend mieux ! Le must ce serait vraiment que les modules ne soit pas > dépendant entre eux, par exemple pour que je puisse gérer un site uniquement > composé d'articles avec des catégories, ou un wiki sans catégories, mais je > ne sais pas si c'est réalisable car il faudrait déjà une certaine > abstraction. Bof, les catégories si tu n'en veux pas il suffit de ne pas t'en servir. Et un wiki c'est juste un blog sans index par date et où tout le monde peut écrire finalement (vu que nos URL sont dors et déjà adaptées) Bref, l'abstraction est déjà là . Ce qu'on a c'est un moteur de gestion de document. Ce que ça donne dans l'esprit utilisateur ça va fortement dépendre de l'apparence que tu as (si tu fais un index par date, si tu met des liens vers l'édition sur toutes les pages ...) > Je sais pas. Si on associe "admin" à la fonction "administration", ça casse > toute l'abstraction. Donc le mieux selon moi ce serait de balader deux > tableaux associatifs, un pour les différentes sections et un autre pour les > paramÚtres. > > Array ( > [0] => "admin", > [1] => "stats" > ) > > Array ( > [param1] => "value1", > [param2] => "value2" > ) > > A défaut de deux tableaux bruts on pourrait définir un objet contenant ces > deux propriétés, et éventuelement des méthodes pour y accéder ... Module :) Pour gérer ça tu fais un module qui prend la main en premier, regarde si la catégorie s'appelle "stats" et crée une requête interne spéciale pour ce type d'URL. Lors des traitements c'est pareil tu as un gestionnaire qui prendra la main juste avant le gestionnaire par défaut et qui lancera les actions de stat/admin pour avoir le contenu au lieu d'aller le chercher dans la base. Pas besoin pour ça d'avoir un "plan" du site organisé en sections. > La contrepartie c'est qu'avec cette méthode, tous les modules devront > s'initialiser les uns aprÚs les autres pour voir s'ils ont besoins de se > lancer d'aprÚs la requête interne. Ãa pose un problÚme de performances, et > c'est par là que j'en étais arrivé a la création d'un nouvel évenement lié à > l'uri... mais ça cassait aussi l'abstraction. Pourquoi alors ne pas gérer des > évenements en fonction de la requête interne standard tiens ? C'est le problÚme que j'avais soulevé il y a quelques jours : on va charger chaque gestionnaire et potentiellement exécuter seulement un "if (! on_est_en_section_admin ) return" en ayant compilé/chargé plein de code pour rien. Pour l'instant je vous suggÚre de laisser tel quel et de ne pas vous en préoccuper. Quand on aura un truc qui marche, vu qu'on a une phase de génération on peut tout à fait se permettre de "construire" le code PHP du constructeur et mettre la condition directement dedans. On aurait donc à la place un code dans le constructeur qui dit "if (on_est_en_section_admin) charge_le_gestionnaire_X". Si la condition n'est pas validée on ne charge pas le gestionnaire pour rien et on ne perd rien en performance (à part peut être quelques test "if" mais ça c'est nettement négligeable). C'est ça que j'entendais par "fonction inline". Ce n'est techniquement pas trop complexe à gérer, mais à mon avis il vaut mieux se concentrer sur le reste d'abord, ça c'est de l'ajout. -- Eric