Ticket #1296 (closed enhancement: fixed)
Chargement des modules
Reported by: | bruno | Owned by: | franck |
---|---|---|---|
Priority: | normal | Milestone: | 2.9 |
Component: | module:core | Version: | dev |
Severity: | normal | Keywords: | |
Cc: |
Description
Actuellement, le chargement des modules (plugins, thèmes) passe par la classe class.dc.modules.php, et plus particulièrement par la méthode loadModules de cette classe. Cette méthode prend un argument $ns, qui vaut soit "admin" soit "public" (soit xmlrpc), selon l'endroit ou on l'instancie. Son comportement est le suivant :
- chargement du _define.php de chaque module
- chargement du _prepend.php de chaque module
- chargement du _$ns.php de chaque module, si $ns est non null
Dans cette approche, on ne peut pas faire de traitements entre le chargement du _prepend et le chargement du _(admin|public).
Exemple : le behavior publicRegisterURL (introduit sur le head). Actuellement appelé trop tôt car dans inc/prepend.php, il ne peut être exploité par des plugins.
Une alternative serait de déplacer l'enregistrement des urls par défaut après chargement des modules, mais cela empêcherait les plugins de recenser les urls enregistrées, car justement elles ne sont pas encore enregistrées.
En fait, il faudrait pouvoir enregistrer les URLs par défaut entre le chargement du _prepend.php de chaque module et le chargement du _public.php de chaque module, et donc faire cela en 2 phases dans le inc/public/prepend.php...
Change History
comment:6 Changed 11 years ago by franck <carnet.franck.paul@…>
(In [8c110613c240]) Load all modules _prepend.php before loading their _admin.php or _public.php, addresses #1296
comment:8 Changed 10 years ago by franck
Une première passe est faire, reste à voir ce qu'implique le déplacement de la déclaration des URLs
comment:11 Changed 10 years ago by franck
- Status changed from new to closed
- Resolution set to fixed
Fixed, see [3108]
Ça me parait pas mal et ça va de plus contraindre à mettre le code (de gestion des URLs) au bon endroit (_public.php ou _admin.php) et pas dans le prepend.php. Ça joue en faveur d'une nette séparation entre l'admin et la partie publique. Je vote pour !