Zend_Server_Reflection.xml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <sect1 id="zend.server.reflection">
  2. <title>Zend_Server_Reflection</title>
  3. <sect2 id="zend.server.reflection.introduction">
  4. <title>Wprowadzenie</title>
  5. <para>
  6. Klasa Zend_Server_Reflection zapewnia standardowy mechanizm dla
  7. przeprowadzania introspekcji funkcji i klas dla potrzeb klas
  8. serwerów. Jest oparta na API Reflection PHP5 i rozszerza je aby
  9. zapewnić metody pobierania typów parametrów jakie przyjmuje funkcja,
  10. typów zwracanych wartości oraz opisów, pełnej listy prototypów
  11. funkcji i metod (np. wszystkie możliwe poprawne kombinacje
  12. wywołania), oraz opisów funkcji/metod.
  13. </para>
  14. <para>
  15. Typowo ta funkcjonalność będzie używana przez programistów klas
  16. serwerów dla frameworka.
  17. </para>
  18. </sect2>
  19. <sect2 id="zend.server.reflection.usage">
  20. <title>Użycie</title>
  21. <para>
  22. Podstawowe użycie jest proste:
  23. </para>
  24. <programlisting role="php"><![CDATA[
  25. $class = Zend_Server_Reflection::reflectClass('My_Class');
  26. $function = Zend_Server_Reflection::reflectFunction('my_function');
  27. // Pobierz prototypy
  28. $prototypes = $reflection->getPrototypes();
  29. // Przechodzimy pętlą przez wszystkie prototypy funkcji
  30. foreach ($prototypes as $prototype) {
  31. // Pobierz typ zwracanej wartości prototypu
  32. echo "Zwracany typ: ", $prototype->getReturnType(), "\n";
  33. // Pobierz parametry prototypu
  34. $parameters = $prototype->getParameters();
  35. echo "Parametry: \n";
  36. foreach ($parameters as $parameter) {
  37. // Pobierz typ prototypu
  38. echo " ", $parameter->getType(), "\n";
  39. }
  40. }
  41. // Pobierz przestrzeń nazw dla klasy, funkcji lub metody
  42. // Przestrzenie nazw mogą być ustawione podczas tworzenia instancji
  43. // lub przez użycie metody setNamespace()
  44. $reflection->getNamespace();
  45. ]]>
  46. </programlisting>
  47. <para>
  48. <code>reflectFunction()</code> zwraca obiekt
  49. <code>Zend_Server_Reflection_Function</code>;
  50. <code>reflectClass</code> zwraca obiekt
  51. <code>Zend_Server_Reflection_Class</code>. Proszę sprawdź
  52. dokumentację API aby dowiedzieć się jakie metody ma każdy z nich.
  53. </para>
  54. </sect2>
  55. </sect1>