Introduction
Dans un fonctionnement classique d'héritage, la valeur renseignée surcharge la valeur héritée du modèle.
Mais dans certains cas, il peut être intéressant d'utiliser les deux ensemble. C'est ce que l'on appelle l'héritage additif.
Avant de continuer, si les notions de modèle et d'héritage ne vous sont pas familières? Je vous invite à vous approprier ces concepts en vous rendant directement sur la page Logique des modèles.
Priorité de l'héritage
Dans le cas ou plusieurs modèles sont appliqués sur un élément leurs ordres d'affichage joue un rôle important. Il permet à Shinken Entreprise de connaitre quel modèle appliqué en priorité.
Les modèles sont parcourus dans le sens de lecture, de gauche à droite.
Puisque les modèles d'héritage peuvent eux-même hériter de valeurs provenant d'un ou plusieurs modèles, il peut devenir très compliqué de trouver quelle valeur aura la priorité.
Le schéma suivant devrait vous aider à y voir plus clair dans l'ordre de priorité:
Dans l'exemple ci-dessus, le modèle d'hôte 1 hérite du modèles 2 et le 5...
On constate que l'arbre d'héritage de chacun des modèles et parcouru à la suite des autres.
Multiple sources d'héritage
En partant du postulat que tous les modèles ont activé l'héritage sur la propriété host_group:
Héritage classique contre Héritage additif
La notion d'ordre de priorité a été abordée et l'on sait également qu'une valeur renseignée localement a toujours autorité sur la valeur définie dans un modèle hérité.
Cette dernière règle n'est cependant plus exacte si la fonction d'héritage additif est activé puisque les valeurs locales vont être concaténées avec les valeurs d'une chaine héritée.
Il devient alors intéressant de comprendre les mécanismes d'héritage plus en détail:
- Dans
- un héritage classique, le premier modèle
- dans l'arbre d'héritage à retourner une valeur est utilisé. Les modèles sont parcourus dans l'ordre de priorité jusqu'à trouver une valeur.
- Dans un héritage additif, le premier modèle
- dans l'arbre d'héritage à désactiver
- la fonction d'héritage additif est utilisé comme nœud
- de référence. À partir du nœud, le parcours de
- l'arbre d'héritage
- s'il existe continue en "Classique" ou "Additif" en fonction du contexte.
Pour étayer les deux mécanismes d'héritage, comparons deux versions de Shinken Entreprise.
Les versions 02.04.00 est précédente utilisent exclusivement l'héritage classique. La version 02.05.00 permet les deux types d'héritage.
Partant du postulat que tous les modèles ont activé l'héritage sur la propriété contacts_group;
Dans l'exemple suivant
Remarque: Pour obtenir un héritage classique il faut désactiver tout les héritage additive dans l'arbre d'héritage.





