Annoted::setAnnotation
-
public function setAnnotation([string $annotation_name,] Annotation $annotation)
Description
Force la valeur d’une annotation pour tout le reste de l’exécution du script courant.
L’objet annotation devient l’annotation qui sera retournée par getAnnotation, Reflection::of, pour l’annotation concernée, sur l’ensemble des instances déjà existantes ou futures de la class Reflection représentant le même objet (classe identique, ou propriété identique, etc.).
Seule exception : les annotations rendues locales par Annoted::setAnnotationLocal ou Reflection::local restent une instance indépendante pour les objets concernés.
Liste de paramètres
string $annotation_name
Le nom de l’annotation dont on veut forcer la valeur.
Ce paramètre est optionnel. Si absent, le premier paramètre sera
$annotation
et le nom de l’annotation sera la valeur de la constanteANNOTATION
de$annotation
.Préférez l’écriture, plus courte, sans ce premier paramètre. Si vous n’avez pas de classe d’annotation, vous devrez alors préciser vous-même le nom de l’annotation concernée.
Annotation $annotation
L’objet Annotation de remplacement.
Exemple
use ITRocks\Framework\Reflection\Annotation\Property\User_Annotation; use ITRocks\Framework\Reflection\Reflection_Property; use ITRocks\Framework\User; // (...) $property1 = new Reflection_Property(User::class, 'login'); $user_annotation = new User_Annotation(User_Annotation::INVISIBLE); $property1->setAnnotation(User_Annotation::ANNOTATION, $user_annotation); echo User_Annotation::of($property1)->has(User_Annotation::INVISIBLE) . LF; // > true $property2 = new reflection_Property(User::class, 'login'); echo User_Annotation::of($property2)->has(User_Annotation::INVISIBLE) . LF; // > true
Voir aussi