non ho trovato proprio easy capire come funzionano gli attribute.
cmq ecco un esempio basico, penso partirò da qui per quel che mi serve:
codice:
#[Attribute]
class CheckProtectedAttribute {
private string $isProtected;
public function __construct(string $isProtected) {
$this->isProtected = $isProtected;
}
}
class Foo {
#[CheckProtectedAttribute('true')]
public function funcProtetta() {
echo 'protetta';
}
#[CheckProtectedAttribute('false')]
public function funcNonProtetta() {
echo 'non protetta';
}
}
$reflector = new \ReflectionClass(Foo::class);
$methods = $reflector->getMethods();
foreach ($methods as $method) {
foreach ($method->getAttributes() as $attr) {
foreach ($attr->getArguments() as $arg) {
if ($arg === 'true') {
echo '-ESEGUIRE IL LOGIN-';
} else {
$reflectionMethod = new ReflectionMethod('Foo', $method->getName());
$reflectionMethod->invoke($reflector->newInstance());
}
}
echo '<hr>';
}
}