Da un punto di vista architettonico, penso che la riflessione dovrebbe essere evitata se possibile, ma date un'occhiata allo ReflectionClass->getMethods() se pensate di sapere cosa state facendo.
<?php
class A {
public function x() { }
public function y() { }
}
class B extends A {
public function a() { }
public function b() { }
public function x() { } // <-- defined here
}
$r = new ReflectionClass('B');
print_r($r->getMethods());
?>
Si otterrà un elenco dei metodi definiti da B
e A
, insieme con la classe che lo scorso ha definito. Questa è l'uscita:
Array
(
[0] => ReflectionMethod Object
(
[name] => a
[class] => B
)
[1] => ReflectionMethod Object
(
[name] => b
[class] => B
)
[2] => ReflectionMethod Object
(
[name] => x
[class] => B
)
[3] => ReflectionMethod Object
(
[name] => y
[class] => A
)
)
Non conosco alcun metodo eccetto le complicate cose di riflessione. Per cosa ti serve questo? –
Puoi farmi sapere perché stai facendo questo? È per la documentazione o per l'uso all'interno dell'applicazione? –
Ho bisogno di aggiungere tutti i metodi pubblici nei controller alla mia tabella delle autorizzazioni. Sto usando cakePHP e il loro componente ACL non funziona con il modello esistente che possiedo. – macha