2
0

Zend_Server_Reflection.xml 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17175 -->
  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
  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. es, um Methoden für die Erhaltung von Parameter und Rückgabewerttypen und Beschreibung,
  13. eine komplette Liste mit Funktion und Methoden Prototypen (d.h. alle möglichen, gültigen
  14. Aufrufkombinationen) sowie Funktions- und 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 language="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. <methodname>reflectFunction()</methodname> gibt ein
  50. <classname>Zend_Server_Reflection_Function</classname> Objekt zurück;
  51. <code>reflectClass</code> gibt ein <classname>Zend_Server_Reflection_Class</classname>
  52. Objekt zurück. Bitte die <acronym>API</acronym> Documentation beachten, um zu erfahren,
  53. welche Methoden für beide Klassen verfügbar sind.
  54. </para>
  55. </sect2>
  56. </sect1>
  57. <!--
  58. vim:se ts=4 sw=4 et:
  59. -->