Ticket #1694 (closed defect: invalid)
Prioriser le plugin maintenance
Reported by: | bruno | Owned by: | JcDenis |
---|---|---|---|
Priority: | normal | Milestone: | 2.6 |
Component: | module:plugins | Version: | 2.5 |
Severity: | normal | Keywords: | |
Cc: |
Description
A voir si c'est un bug de dotclear sur du plus long terme(*)
Pour 'voir' les classes dcMaintenance* depuis un plugin tiers (au sens $autoload), il faut être moins prioritaire que lui. Il faudrait définir maintenance avec une priorité haute, du coup.
(*) Le bug dotclear maintenant : pour le chargement des plugins, dotclear ne fait pas :
- pour chaque plugin par ordre de priorité : lire le _prepend.php
- pour chaque plugin par ordre de priorité : lire le _admin.php (resp le _public.php)
mais : Pour chaque plugin:
- lire le _prepend.php
- lire le _admin.php
il faudrait faire évoluer pour avoir le premier cas, pas le second...
Change History
comment:2 follow-up: ↓ 3 Changed 11 years ago by bruno
Il faut bien que j'herite de dcMaintenanceTask, et pour ça que php sache où est la classe. En clair, si je veux déclarer ma classe dans _admin.php ça ne marche pas.
comment:3 in reply to: ↑ 2 Changed 11 years ago by JcDenis
- Owner changed from team to JcDenis
Replying to bruno:
Il faut bien que j'herite de dcMaintenanceTask, et pour ça que php sache où est la classe. En clair, si je veux déclarer ma classe dans _admin.php ça ne marche pas.
Ben si, tes autoload sont dans le prepend, peu importe l'ordre dans admin, la liste des classes est connue.
Bon j'ai beau tester dans tous les sens (avec le plugin "importExport") je l'ai modifié pour déclarer ma tâche dans _admin.php (au lieu du prepend), j'ai tester avec priorité 10 sur "maintenance" et 20 sur "importExport", puis inversé, ça marche dans tous les cas ! Es tu sure d'y voir un bug ? De comprendre le déroulement / l'appelle des tâches ?
Autre exemple avec le tout récent plugin "buildtools".
Fait moi un plugin qui plante et je te croirais :-)
Je ne comprend pas pourquoi tu veux voir la classe dcMaintenance ?! Si tu lui ajoute une tâche, tu la déclares par behavior que le plugin maintenance lira à sa construction, c'est à dire bien après les fichiers _prepend.php et _admin.php et ainsi toutes les classes pouvant servir seront construites également bien après...
J'ai justement construit le plugin maintenance pour que tout se passe par une behavior très simple. Un exemple est disponible dans le plugin importExport.