Porteur principal : Laurent Groleau
Porteur secondaire : François Raynaud
Résumé
Prévoir dans openmairie_exemple la surcharge “custom” de la classe application
Motivation
La possibilité de surcharge “locale” d’une application est limitée à la surcharge d’objets existants, soit du framework openMairie, soit applicatifs.
Elle ne prend pas en charge :
- de nouveaux objets: tables ajoutées, …
- de nouvelles traductions, ou la surcharge de traductions avec la fonction
gettext()
- une feuille de style spécifique
- de nouveaux menu, un nouveau “footer”, …
- la génération des fichiers dans le répertoire de “custom”
L’objectif est donc de permettre la surcharge “custom” de la classe applicative, étendant elle-même le framework.
Pré-requis
à discuter
Proposition et implémentation
La proposition est de ré-écrire app/index.php
dans openmairie_exemple pour proposer de systématiser la façon de surcharger le framework avec l’application, et de surcharger l’application par un “custom”. L’utilisation des fichiers dyn/include.inc
et dyn/custom.inc.php
devient optionelle.
On doit également corriger les méthodes view_form|tab|sousform|soustab()
de la classe application
.
Enfin, on ajoute une propriété à la classe application pour que le générateur crée les fichiers dans le répertoire de custom … charge restant au développeur qui surcharge en “custom” de préciser pour chaque objet de quelle classe il veut hériter.
Commit:
- Branche des modifications: prop0063-custom-application
- Commit
Démonstration:
- Branche de démonstration d’une application surchargeant le framework modifié, en reprenant le même fichier
app/index.php
: prop0063-custom-application_demo_openapplication - Branche de démonstration d’un CUSTOM de l’application surchargeant le framework, avec tous les fichiers dans le répertoire
custom
: prop0063-custom-application_demo_openapplication_custom
Documentation:
- Si la proposition est acceptée, il faudra mettre à jour la documentation : https://openmairie.readthedocs.io/projects/omframework/fr/4.9/reference/formulaire.html?highlight=custom#custom-de-l-application
- Il pourrait être sympathique de maintenir à l’avenir deux branches illustrant la surcharge applicative et custom pour démarrer au plus vite une nouvelle application ou un custom
Risques
aucun détecté