Annotation de propriété @var
-
/** * @var Type|Secondary_Type|etc. */ public $property_name;
Cette annotation correspond à l’annotation phpdocumentor @var : elle indique au programmeur, à phpdocumentor, à votre IDE, et au framework it.rocks, le type de votre propriété.
Le framework n’utilise que le premier type déclaré, avant le premier
|
. Attention donc pour une déclaration d’un type classe et de traits additionnels attendus à bien mettre la référence à la classe en premier.Il est obligatoire de déclarer correctement le type de chacune de vos propriétés par ce biais, le bon fonctionnement de vos applications en dépend.
Les types abstraits : mixed, object, traits, interfaces, classes abstraits, sont autorisés. En cas de données stockées en base de données relationnelles, le framework gèrera notamment automatiquement la maintenance de vues en base de données, permettant le requêtage sur des objets multi-classes.
Effets
Les traitements standards et mécaniques du framework utilisent massivement les fonctions de réflection, et notamment Reflection_Property::getType(), qui s’appuie sur
@var
. Il ne peut être fait ici une liste exhaustive des effets de cette annotation. Les plus notables, en résumé :- La maintenance automatique de vos bases de données utilise cette valeur pour typer correctement le champs dans la table,
- En fonction de vos déclarations de valeurs simples, multiples d’objets, de collections d’objets, de liens vers des objets, d’objets de classe abstraite, etc., le moteur de templates les affichera et proposera des composants de saisie en utilisant automatiquement les composants standard adéquats.
- L’ORM du framework se chargera de récupérer à la demande en base de données les valeurs des propriétés de type objets, collections d’objets, liens vers des objets, lorsqu’eux-même sont stockés dans des tables de vos bases de données ou autres fichiers sur le disque dur.
- etc.Types notables
Ces types notables disposent de composants d’affichage et de modification standard du framework, ainsi que de structures correspondantes pour le stockage dans des champs de bases de données :
Types simples
-
@var string
: chaîne de caractères
-@var integer
: entier
-@var float
: nombre à virgule flottante
-@var boolean
: booléenNotez que les noms complets (par exemple
boolean
) ont été préférés à leur abbréviation (bool
) communément admis en PHP, dans le strict respect des conventions de nommage qui rejettent toute abréviation, autant que faire ce peut, au profit d’un nommage clair par des complets. Cela était possible dans la mesure ou phpdocumentor et les IDE acceptent en général les deux notations.Types tableaux
-
@var string[]
: permet la saisie de plusieurs chaînes de caractères, stockées dans un seul champs en base de données. Associé à @values, vous pouvez également permettre la sélection d’une à plusieurs valeurs prédéfinies dans une liste de valeurs possibles, stocké sous forme de SET par MySQL par exemple.Objets du framework
-
@var Date_Time
: permet d’activer les composants de saisie dédiés aux dates et heures, et le stockage en DATETIME en base de donnéesVoir aussi les objets fournis en standard.