Statut : intégrée dans la 4.8.0
Porteur principal : Florent Michon
Porteur secondaire : Sofien Timezouaght
Résumé
L’objectif ici est d’avoir une méthode unique qui permet d’instancier une classe métier pour rendre pleinement fonctionnel le custom et permettre de rendre non obligatoire la cascade des classes métier obj/core/gen.
Motivation
Le ‘custom’ au niveau de la personnalisation des classes métier ne fonctionne pas dans tous les cas d’utilisation aujourd’hui. En effet, il faudrait dupliquer tout le code qui gère l’éventuelle surcharge en ‘custom’. L’idée est de proposer une méthode unique à appeler pour gérer l’instanciation des classes métier.
Pré-requis
RAS
Proposition et implémentation
Implémentation :
- Création de la méthode
application::get_inst__om_dbform()
qui devient la seule méthode à appeler pour instancier un objet métier : elle gère le custom et la suppression de la cascade - Ajout d’un attribut
dbform::_absolute_class_name
dans la génération de la classe ̀gen/obj/.class.php`pour contenir le nom de la classe pour gérer le custom et la suppression de la cascade - Ajout de la définition de la méthode
dbform::__construct()
directement dans la classe ̀dbformet suppression de sa génération dans la classe ̀obj/<OBJ>.class.php
pour gérer la suppression de la cascade - Remplacement de la méthode
dbform::get_class_custom()
pardbform::get_absolute_class_name()
qui récupère la valeur de l’attributdbform::_absolute_class_name
pour gérer le custom et la suppression de la cascade
Branche :
/openmairie_exemple/branches/prop0040-improve_custom_and_remove_mandatory_cascade_obj_core_gen/
- https://adullact.net/scm/viewvc.php/openmairie/openmairie_exemple/branches/prop0040-improve_custom_and_remove_mandatory_cascade_obj_core_gen/
Modification fonctionnelle :
Risques
- Il va être nécessaire de passer dans tout le code de l’applicatif pour remplacer l’instanciation des classes métier par l’appel à la nouvelle méthode sachant que si ce n’est pas fait, le code continue d’être opérationnel (à l’exception de la fonctionnalité custom et de la suppression de cascade obligatoire obj/core/gen).
- Il va être nécessaire d’ajouter l’attribut
_absolute_class_name
au classes métier surchargées.