Autor Zpráva
JanXC
Profil *
Dobrý den,
mám instanci určité třídy, např:
class Foo {
   /**
    * Popisek
    * @MojeAnotace
    */
   protected $a;
   
   protected $b;
}

a potřebuji z instance vytáhnout přes reflexi všechny proměnné (private, protected, public) a jejich dokumentaci. Existuje obdoba pro metody. Pro fieldy existuje funkce get_object_vars, ta ale vrací jen public fieldy a pouze mapu (klíč->hodnota).

Mohu poprosit o nějaké nápady?
Děkuji, Jan


ve výsledku se potřebuji dostat k anotacím...
kzk
Profil *
JanXC:
Můžeš se inspirovat tady a pak si najít volání ve zbytku API. Funguje to skvěle. Nad tím si pak snadno můžeš udělat wrapper pro vlastní non-PHP-doc zápis.


kzk:
http://api.nette.org/2.3.1/source-Reflection.ClassType.php.html#182
Joker
Profil
JanXC:
Jestli jsem to dobře pochopil, cílem je dostat se uvnitř skriptu k těm komentářům?
Myslel jsem si, že to ani nejde, ale vypadá to, že jde: ReflectionClass::getDocComment.

Nebo snad chcete dělat něco jako jsou Data Annotations v .Netu?
JanXC
Profil *
Děkuji za reakce. Jde mi o to, dostat anotace z proměnných (celá třída a metody jsou pro mně zbytečné...).

Našel jsem ReflectionClass::getProperties(), která vrátí objekty ReflectionProperty a to je asi přesně ono, co potřebuji. Snad to bude celé.

Děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0