2
0

Zend_Server_Reflection.xml 2.6 KB

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