Klasa Zend_Server_Reflection zapewnia standardowy mechanizm dla przeprowadzania introspekcji funkcji i klas dla potrzeb klas serwerów. Jest oparta na API Reflection PHP5 i rozszerza je aby zapewnić metody pobierania typów parametrów jakie przyjmuje funkcja, typów zwracanych wartości oraz opisów, pełnej listy prototypów funkcji i metod (np. wszystkie możliwe poprawne kombinacje wywołania), oraz opisów funkcji/metod.
Typowo ta funkcjonalność będzie używana przez programistów klas serwerów dla frameworka.
Podstawowe użycie jest proste:
$class = Zend_Server_Reflection::reflectClass('My_Class');
$function = Zend_Server_Reflection::reflectFunction('my_function');
// Pobierz prototypy
$prototypes = $reflection->getPrototypes();
// Przechodzimy pętlą przez wszystkie prototypy funkcji
foreach ($prototypes as $prototype) {
// Pobierz typ zwracanej wartości prototypu
echo "Zwracany typ: ", $prototype->getReturnType(), "\n";
// Pobierz parametry prototypu
$parameters = $prototype->getParameters();
echo "Parametry: \n";
foreach ($parameters as $parameter) {
// Pobierz typ prototypu
echo " ", $parameter->getType(), "\n";
}
}
// Pobierz przestrzeń nazw dla klasy, funkcji lub metody
// Przestrzenie nazw mogą być ustawione podczas tworzenia instancji
// lub przez użycie metody setNamespace()
$reflection->getNamespace();
reflectFunction() zwraca obiekt
Zend_Server_Reflection_Function;
reflectClass zwraca obiekt
Zend_Server_Reflection_Class. Proszę sprawdź
dokumentację API aby dowiedzieć się jakie metody ma każdy z nich.