Annotation de classe @business
-
Redirected from @business
Déclare une classe d'objets métier.
/** * @business [boolean] */ class A_Class
Les classes métier servent à représenter des objets stockés en base de données relationnelle. Toute classe représentant un objet stocké en base devrait donc être déclarée
@business.
Valeur par défaut
Sans annotation déclarée dans la classe ou une classe de parente ou de composition, la valeur par défaut est
false.
Paramètre
-
truerend la classe et ses descendants métier (valeur par défaut).
-
falsepermet de forcer la classe non-métier, dans le cas d'une classe descendant d'une classe métier dont on ne veut pas qu'elle soit considérée comme métier.
Effets
Expérience utilisateur
- Pour la génération automatique de vues dans le cas d'une propriété de classe abstraite, toutes les classes filles
@businessde la classe abstraite donnent lieu à création d'une requête SQL union pour la vue.
- L'affichage au format texte d'un objet dans les formulaires et sous-formulaires ne voit s'adjoindre un lien vers la vue de l'objet que s'il est de classe
@business.
- Dans la sélection inverse de propriétés, la remontée ne se fait que vers des propriétés de classes
@business.
Structure de la base de données
- La maintenance automatique de la base de données n'est réalisée que sur les classes métier
@businessde plus haut niveau. Pour une classe fille qui ne doit pas agir sur la structure de données (par exemple surcharge d'une classe pour une vue, il faudra déclarer
@business false.
Effets internes au framework
- Le test unitaire Select_Test::testEverything – visant à vérifier la validité de toutes les variantes de requêtes SQL select partant d'une classe – ne s'exécute que sur les classes
@business.
- Seules les classes
@businesssont retenues comme contexte de traduction.
- La valeur par défaut de l'annotation
@store_namene peut s'enregistrer en Dependency que pour les classes
@business.
Voir aussi
- Lorsque vous programmez une classe métier, veillez également à :
— déclarer les propriétés contenant les valeurs représentatives avec @representative
— déclarer une méthode pour représenter textuellement les objets de cette classe avec __toString() : l'ommission de l'implémentation de cette méthode pourrait provoquer des erreurs lorsque des fonctionnalités standard sont utilisées avec votre classe métier.