| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 17175 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.server.reflection">
- <title>Zend_Server_Reflection</title>
- <sect2 id="zend.server.reflection.introduction">
- <title>Einführung</title>
- <para>
- <classname>Zend_Server_Reflection</classname> stellt einen Standardmechanismus für
- Funktion und Klassen Introspektion für die Verwendung der Serverklassen bereit. Es
- basiert auf der <acronym>PHP</acronym> 5 Reflection <acronym>API</acronym> und erweitert
- es, um Methoden für die Erhaltung von Parameter und Rückgabewerttypen und Beschreibung,
- eine komplette Liste mit Funktion und Methoden Prototypen (d.h. alle möglichen, gültigen
- Aufrufkombinationen) sowie Funktions- und Methodenbeschreibungen bereit zu stellen.
- </para>
- <para>
- Normalerweise wird diese Funktionalität nur von Entwicklern von Serverklassen für das
- Framework verwendet.
- </para>
- </sect2>
- <sect2 id="zend.server.reflection.usage">
- <title>Verwendung</title>
- <para>
- Die grundlegende Verwendung ist einfach:
- </para>
- <programlisting language="php"><![CDATA[
- $class = Zend_Server_Reflection::reflectClass('My_Class');
- $function = Zend_Server_Reflection::reflectFunction('my_function');
- // Prototypen auslesen
- $prototypes = $reflection->getPrototypes();
- // Durch jeden Prototyp laufen für die Funktion
- foreach ($prototypes as $prototype) {
- // Rückgabe Typ des Prototypen ausgeben
- echo "Rückgabe Typ: ", $prototype->getReturnType(), "\n";
- // Parameter des Prototypen ausgeben
- $parameters = $prototype->getParameters();
- echo "Parameter: \n";
- foreach ($parameters as $parameter) {
- // Parameter Typ ausgeben
- echo " ", $parameter->getType(), "\n";
- }
- }
- // Erhalte Namensraum für eine Klasse, Funktion oder Methode.
- // Namensräume können zum Zeitpunkt der Instanzierung gesetzt werden
- // (zweites Argument) oder durch Verwendung von setNamespace()
- $reflection->getNamespace();
- ]]></programlisting>
- <para>
- <methodname>reflectFunction()</methodname> gibt ein
- <classname>Zend_Server_Reflection_Function</classname> Objekt zurück;
- <code>reflectClass</code> gibt ein <classname>Zend_Server_Reflection_Class</classname>
- Objekt zurück. Bitte die <acronym>API</acronym> Documentation beachten, um zu erfahren,
- welche Methoden für beide Klassen verfügbar sind.
- </para>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|