Annotation de propriété @integrated
-
/** * @integrated * @integrated alias * @integrated block * @integrated block sub_property_1, sub_property_2 * @var Class_Name */ public $property;
L’annotation de propriété @integrated indique que le sous-objet doit être considéré comme intégré à l’objet courant, et indique de quelle façon.
Celà sert notamment à indiquer qu’un sous-objet sera forcément ouvert comme sous-formulaire du formulaire standard de modification d’un objet de la classe.
Description
@integrated [alias] [block] [full|simple] [property1[, property.path2[, etc]]]
Fonctionnement par défaut
Sans aucun paramètre, toutes les propriétés visibles du sous-objet sont intégrées comme sous-formulaire dans le formulaire de l’objet courant.- chaque nom de propriété du sous objet est affiché sous forme de chemin de propriété incluant le nom de la propriété courante.
- en terme de structure HTML, les champs du sous-formulaire sont alignés avec les champs du formulaire courant.
Paramètres optionnels
alias
Si cette option est activée, l’alias des propriétés, c’est à dire la valeur l’annotation de propriété @alias, s’affichera à la place de leur nom, lorsque cette annotation est définie.
block
Si cette option est activée, le sous-formulaire sera intégré dans le formulaire à l’intérieur d’un fieldset au lieu que les champs du sous-formulaire soient alignés aux champs du formulaire.
full
Le chemin de propriété complet sera affiché pour chaque champ du formulaire.
Cette option est active par défaut si ni
alias
niblock
ne sont défini.simple
Le nom simple de la propriété sera affiché pour chaque champ du formulaire.
Cette option est active par défaut si
alias
oublock
est défini.liste de chemins propriétés
Si précisés, seuls les propriétés correspondant à ce chemin, relatif à la classe du sous-objet, seront affichées dans le sous-formulaire.
Sans cette option, toutes les propriétés visibles sont automatiquement intégrées.
Exemple
Le code ci-dessous déclare une classe client, avec son adresse, qui sera intégrée dans le formulaire.
Dans l’adresse, la ville elle-même sera intégrée.class Address { /** * @multiline * @var string */ public $address; /** * @integrated alias * @link Object * @var City */ public $city; } class City { /** * @alias city * @var string */ public $name; } /** * @display_order name, address */ class Client { /** * @integrated block * @link Object * @var Address */ public $address; /** * @var string */ public $name; }
Interprétation :- l’adresse s’affichera dans un sous-formulaire délimité (fieldset) du formulaire du client
- la ville sera intégrée dans le sous-formulaire adresse (pas de sous-sous-formulaire)
- au lieu d’afficher city.name ou name, la ville affichera son @alias city
Affichage de formulaire client correspondant à cet exemple (la traduction est appliquée) :