Declaración de clases de atributos
PHP Manual
PHP Manual»Atributos»Declaración de clases de atributos

Se recomienda definir una clase separada para cada atributo. En el caso más simple, una clase vacía con la declaración #[Attribute] es suficiente. El atributo puede ser importado desde el espacio de nombres global utilizando una declaración use.

Ejemplo #1 Clase de atributo simple

<?php

namespace Example;

use Attribute;

#[Attribute]
class MyAttribute
{
}

Para restringir los tipos de declaraciones a los que se puede aplicar un atributo, pasa una máscara de bits como primer argumento en la declaración #[Attribute]

Ejemplo #2 Usar la especificación de destino para restringir dónde se pueden usar los atributos

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION)]
class MyAttribute
{
}

Declarar MyAttribute en otro tipo ahora generará una excepción durante la llamada a ReflectionAttribute::newInstance()

Los siguientes destinos se pueden especificar:

Por defecto, un atributo solo se puede usar una vez por declaración. Para permitir que un atributo sea repetible, especifícalo en la máscara de bits de la declaración #[Attribute] utilizando el flag Attribute::IS_REPEATABLE

Ejemplo #3 Usar IS_REPEATABLE para permitir que un atributo se use varias veces en una declaración

<?php

namespace Example;

use Attribute;

#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_FUNCTION | Attribute::IS_REPEATABLE)]
class MyAttribute
{
}
To Top