openMairie.org | Démonstration | Documentation | Forum

[intégrée] Prop0040 - application::get_inst__om_dbform()

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() par dbform::get_absolute_class_name() qui récupère la valeur de l’attribut dbform::_absolute_class_name pour gérer le custom et la suppression de la cascade

Branche :

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.

Le développement est conforme aux spécifications, OK pour le merge vers la branche d’intégration.

→ Rebase depuis la branche d’intégration 4.8.0-develop
https://adullact.net/scm/viewvc.php/openmairie?view=revision&revision=4131

→ Merge dans la branche d’intégration 4.8.0-develop
https://adullact.net/scm/viewvc.php/openmairie?view=revision&revision=4132

→ Suppression de la branche de développement prop0040-improve_custom_and_remove_mandatory_cascade_obj_core_gen
https://adullact.net/scm/viewvc.php/openmairie?view=revision&revision=4133