Zend_Server_Reflection.xml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 15157 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.server.reflection">
  5. <title>Zend_Server_Reflection</title>
  6. <sect2 id="zend.server.reflection.introduction">
  7. <title>Einführung</title>
  8. <para>
  9. <classname>Zend_Server_Reflection</classname> stellt einen Standardmechanismus für Funktion und Klassen
  10. Introspektion für die Verwendung der Serverklassen bereit. Es basiert auf der PHP 5
  11. Reflection API und erweitert es, um Methoden für die Erhaltung von Parameter und
  12. Rückgabewerttypen und Beschreibung, eine komplette Liste mit Funktion und Methoden
  13. Prototypen (d.h. alle möglichen, gültigen Aufrufkombinationen) sowie Funktions- und
  14. Methodenbeschreibungen bereit zu stellen
  15. </para>
  16. <para>
  17. Normalerweise wird diese Funktionalität nur von Entwicklern von Serverklassen für das
  18. Framework verwendet.
  19. </para>
  20. </sect2>
  21. <sect2 id="zend.server.reflection.usage">
  22. <title>Verwendung</title>
  23. <para>
  24. Die grundlegende Verwendung ist einfach:
  25. </para>
  26. <programlisting role="php"><![CDATA[
  27. $class = Zend_Server_Reflection::reflectClass('My_Class');
  28. $function = Zend_Server_Reflection::reflectFunction('my_function');
  29. // Prototypen auslesen
  30. $prototypes = $reflection->getPrototypes();
  31. // Durch jeden Prototyp laufen für die Funktion
  32. foreach ($prototypes as $prototype) {
  33. // Rückgabe Typ des Prototypen ausgeben
  34. echo "Rückgabe Typ: ", $prototype->getReturnType(), "\n";
  35. // Parameter des Prototypen ausgeben
  36. $parameters = $prototype->getParameters();
  37. echo "Parameter: \n";
  38. foreach ($parameters as $parameter) {
  39. // Parameter Typ ausgeben
  40. echo " ", $parameter->getType(), "\n";
  41. }
  42. }
  43. // Erhalte Namensraum für eine Klasse, Funktion oder Methode.
  44. // Namensräume können zum Zeitpunkt der Instanzierung gesetzt werden
  45. // (zweites Argument) oder durch Verwendung von setNamespace()
  46. $reflection->getNamespace();
  47. ]]></programlisting>
  48. <para>
  49. <code>reflectFunction()</code> gibt ein <classname>Zend_Server_Reflection_Function</classname>
  50. Objekt zurück; <code>reflectClass</code> gibt ein <classname>Zend_Server_Reflection_Class</classname>
  51. Objekt zurück. Bitte die API Documentation beachten, um zu erfahren, welche Methoden
  52. für beide Klassen verfügbar sind.
  53. </para>
  54. </sect2>
  55. </sect1>
  56. <!--
  57. vim:se ts=4 sw=4 et:
  58. -->