| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 15192 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.reflection.reference">
- <title>Zend_Reflection Referenz</title>
- <para>
- Die verschiedenen Klassen in <code>Zend_Reflection</code> mimen die API von PHP's
- <ulink url="http://php.net/reflection">Reflection API</ulink> - mit einem wichtigen
- Unterschied. PHP's Reflection API unterstützt die Introspection in die Annotation Tags
- von DocBlocks nicht, und auch nicht in die Variablen-Typen von Parametern, oder die
- Rückgabe-Typen.
- </para>
- <para>
- <code>Zend_Reflection</code> analysiert die DocBlock Anotations von Methoden um die
- Variablen-Typen und Rückgabe-Typen von Parametern zu Erkennen. Speziell die Annotations
- von <code>@param</code> und <code>@return</code> werden verwendet. Trotzdem kann man auch
- auf andere Annotation Tags prüfen, sowie die Standardmäßigen "Kurz"- (short) und
- "Lang" (long) Beschreibungen.
- </para>
- <para>
- Jedes Reflection Objekt in <code>Zend_Reflection</code> überschreibt die
- <code>getDocblock()</code> Methode um eine Instanz von
- <code>Zend_Reflection_Docblock</code> zurückzugeben. Die klasse bietet Introspektion in die
- DocBlocks und Annotation Tags.
- </para>
- <para>
- <code>Zend_Reflection_File</code> ist eine neue Reflection Klasse welche die Introspektion
- von PHP Dateien erlaubt. Mit Ihr kann man die Klassen, Funktionen und globalen PHP Code
- erhalten der in der Datei enthalten ist.
- </para>
- <para>
- Letztendlich erlauben die verschiedenen Methoden, die andere Reflection Objekte
- zurückgeben, einen zweiten Parameter: Den Namen der Reflection Klasse die für das
- zurückzugebende Reflection Objekt zu verwenden ist.
- </para>
- <sect2 id="zend.reflection.reference.docblock">
- <title>Zend_Reflection_Docblock</title>
- <para>
- <code>Zend_Reflection_Docblock</code> ist das Herz von
- <code>Zend_Reflection_Docblock</code> Bonus über PHP's Reflection API. Es bietet die
- folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getContents()</code>: Gibt den kompletten Inhalt des DocBlocks zurück.
- </para></listitem>
- <listitem><para>
- <code>getStartLine()</code>: Gibt die Startposition des DocBlocks in der
- definierten Datei zurück.
- </para></listitem>
- <listitem><para>
- <code>getEndLine()</code>: Gibt die letzte Zeile des DocBlocks in der definierten
- Datei zurück.
- </para></listitem>
- <listitem><para>
- <code>getShortDescription()</code>: Gibt die kurze, ein-zeilige Beschreibung zurück
- (normalerweise die erste Zeile des DocBlocks).
- </para></listitem>
- <listitem><para>
- <code>getLongDescription()</code>: Gibt die lange Beschreibung des DocBlocks
- zurück.
- </para></listitem>
- <listitem><para>
- <code>hasTag($name)</code>: Erkennt ob der DocBlock das angegebene Annotation Tag
- besitzt.
- </para></listitem>
- <listitem><para>
- <code>getTag($name)</code>: Empfängt das Reflection Objekt des angegebenen
- Annotation Tags, oder ein boolsches <code>false</code> wenn es nicht vorhanden ist.
- </para></listitem>
- <listitem><para>
- <code>getTags($filter)</code>: Gibt alle Tags zurück, oder alle Tags die dem
- angegebenen <code>$filter</code> String entsprechen. Die zurückgegebenen Tags
- werden ein Array von <code>Zend_Reflection_Docblock_Tag</code> Objekten sein.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.docblock-tag">
- <title>Zend_Reflection_Docblock_Tag</title>
- <para>
- <code>Zend_Reflection_Docblock_Tag</code> bietet Reflection für individuelle
- Annotation Tags. Die meisten Tags bestehen nur aus einem Namen und einer Beschreibung.
- Im Fall einiger spezieller Tags, bietet die Klasse eine Factory Methode um eine
- Instanz der entsprechenden Klasse zu erhalten.
- </para>
- <para>
- Die folgenden Methoden sind für <code>Zend_Reflection_Docblock_Tag</code> definiert:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>factory($tagDocblockLine)</code>: Instanziert die entsprechende Reflection
- Klasse des Tags und gibt diese zurück.
- </para></listitem>
- <listitem><para>
- <code>getName()</code>: Gibt den Namen des Annotation Tags zurück.
- </para></listitem>
- <listitem><para>
- <code>getDescription()</code>: Gibt die Beschreibung des Annotation Tags zurück.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.docblock-tag-param">
- <title>Zend_Reflection_Docblock_Tag_Param</title>
- <para>
- <code>Zend_Reflection_Docblock_Tag_Param</code> ist eine spezialisierte Version von
- <code>Zend_Reflection_Docblock_Tag</code>. Die Beschreibung des <code>@param</code>
- Annotation Tags besteht aus dem Typ des Parameters, dem Namen der Variable und der
- Beschreibung der Variable. Sie fügt die folgenden Methoden zu
- <code>Zend_Reflection_Docblock_Tag</code> hinzu:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getType()</code>: Gibt den Variablentyp des Parameters zurück.
- </para></listitem>
- <listitem><para>
- <code>getVariableName()</code>: Gibt den Variablennamen des Parameters zurück.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.docblock-tag-return">
- <title>Zend_Reflection_Docblock_Tag_Return</title>
- <para>
- Wie <code>Zend_Reflection_Docblock_Tag_Param</code> ist
- <code>Zend_Reflection_Docblock_Tag_Return</code> eine spezialisierte Version von
- <code>Zend_Reflection_Docblock_Tag</code>. Die Beschreibung des <code>@return</code>
- Annotation Tags besteht aus dem Rückgabetyp und der Beschreibung der Variable. Sie
- fügt die folgende Methode zu <code>Zend_Reflection_Docblock_Tag</code> hinzu:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getType()</code>: gibt den Rückgabetyp zurück.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.file">
- <title>Zend_Reflection_File</title>
- <para>
- <code>Zend_Reflection_File</code> bietet Introspection in PHP Dateien. Mit Ihr kann
- man Klassen, Funktionen und reinen PHP Code der in einer Datei definiert ist,
- betrachten. Sie definiert die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getFileName()</code>: empfängt den Dateinamen der Datei die reflektiert wird.
- </para></listitem>
- <listitem><para>
- <code>getStartLine()</code>: empfängt den Startwert der Datei (Immer "1").
- </para></listitem>
- <listitem><para>
- <code>getEndLine()</code>: empfängt die letzte Teile / Anzahl der Linien in der
- Datei.
- </para></listitem>
- <listitem><para>
- <code>getDocComment($reflectionClass = 'Zend_Reflection_Docblock')</code>:
- empfängt das Reflection Objekt des Datei-Level DocBlocks.
- </para></listitem>
- <listitem><para>
- <code>getClasses($reflectionClass = 'Zend_Reflection_Class')</code>:
- empfängt ein Array von Reflection Objekten, eines für jede Klasse die in der
- Datei definiert ist.
- </para></listitem>
- <listitem><para>
- <code>getFunctions($reflectionClass = 'Zend_Reflection_Function')</code>:
- empfängt ein Array von Reflection Objekten, eines für jede Funktion die in der
- Datei definiert ist.
- </para></listitem>
- <listitem><para>
- <code>getClass($name = null, $reflectionClass = 'Zend_Reflection_Class')</code>:
- empfängt das Reflection Objekt für eine einzelne Klasse.
- </para></listitem>
- <listitem><para>
- <code>getContents()</code>: empfängt den kompletten Inhalt der Datei.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.class">
- <title>Zend_Reflection_Class</title>
- <para>
- <code>Zend_Reflection_Class</code> erweitert <code>ReflectionClass</code> und folgt
- dessen API. Sie fügt eine zusätzliche, <code>getDeclaringFile()</code>, Methode
- hinzu, welche verwendet werden kann um das <code>Zend_Reflection_File</code>
- Reflection Objekt für die definierte Datei zu erhalten.
- </para>
- <para>
- Zusätzlich fügen die folgenden Methoden ein zusätzliches Argument für die Spezifikation
- der Reflection Klasse hinzu, die zu verwenden ist wenn ein Reflection Objekt geholt
- wird.
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDeclaringFile($reflectionClass = 'Zend_Reflection_File')</code>
- </para></listitem>
- <listitem><para>
- <code>getDocblock($reflectionClass = 'Zend_Reflection_Docblock')</code>
- </para></listitem>
- <listitem><para>
- <code>getInterfaces($reflectionClass = 'Zend_Reflection_Class')</code>
- </para></listitem>
- <listitem><para>
- <code>getMethod($reflectionClass = 'Zend_Reflection_Method')</code>
- </para></listitem>
- <listitem><para>
- <code>getMethods($filter = -1, $reflectionClass = 'Zend_Reflection_Method')</code>
- </para></listitem>
- <listitem><para>
- <code>getParentClass($reflectionClass = 'Zend_Reflection_Class')</code>
- </para></listitem>
- <listitem><para>
- <code>getProperty($name, $reflectionClass =
- 'Zend_Reflection_Property')</code>
- </para></listitem>
- <listitem><para>
- <code>getProperties($filter = -1, $reflectionClass =
- 'Zend_Reflection_Property')</code>
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.extension">
- <title>Zend_Reflection_Extension</title>
- <para>
- <code>Zend_Reflection_Extension</code> erweitert <code>ReflectionExtension</code> und
- folgt dessen API. Sie überschreibt die folgenden Methoden und fügt ein zusätzliches
- Argument hinzu, für die Spezifikation der Reflection Klasse, die zu verwenden ist
- wenn ein Reflection Objekt geholt wird:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getFunctions($reflectionClass = 'Zend_Reflection_Function')</code>: empfängt
- ein Array von Reflection Objekten welche die Funktionen repräsentieren die von der
- Erweiterung definiert werden.
- </para></listitem>
- <listitem><para>
- <code>getClasses($reflectionClass = 'Zend_Reflection_Class')</code>: empfängt ein
- Array von Reflection Objekten welche die Klassen repräsentieren die von der
- Erweiterung definiert werden.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.function">
- <title>Zend_Reflection_Function</title>
- <para>
- <code>Zend_Reflection_Function</code> fügt eine Methode für das Empfangen des
- Rückgabewerts der Funktion hinzu, und überschreibt diverse Methoden um die
- Spezifikation der Reflection Klasse zu erlauben, die für zurückgegebene Reflection
- Objekte zu verwenden ist.
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDocblock($reflectionClass = 'Zend_Reflection_Docblock')</code>: empfängt
- das Reflection Objekt des Funktions DocBlocks.
- </para></listitem>
- <listitem><para>
- <code>getParameters($reflectionClass = 'Zend_Reflection_Parameter')</code>:
- empfängt ein Array aller Reflection Objekte für die Parameter der Funktionen.
- </para></listitem>
- <listitem><para>
- <code>getReturn()</code>: empfängt das Reflection Objekt des Rückgabewerts.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.method">
- <title>Zend_Reflection_Method</title>
- <para>
- <code>Zend_Reflection_Method</code> spiegelt <code>Zend_Reflection_Function</code>
- und überschreibt nur eine zusätzliche Methode:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getParentClass($reflectionClass = 'Zend_Reflection_Class')</code>: empfängt
- das Reflection Objekt der Eltern-Klasse.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.parameter">
- <title>Zend_Reflection_Parameter</title>
- <para>
- <code>Zend_Reflection_Parameter</code> fügt eine Methode für das Empfangen des
- Parametertyps hinzu, und überschreibt Methoden um die Spezifikation der Reflection
- Klasse zu erlauben, die für zurückgegebene Reflection Objekte zu verwenden ist.
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDeclaringClass($reflectionClass = 'Zend_Reflection_Class')</code>:
- gibt die deklarierte Klasse des Parameters als Reflection Objekt zurück (wenn
- vorhanden).
- </para></listitem>
- <listitem><para>
- <code>getClass($reflectionClass = 'Zend_Reflection_Class')</code>: gibt die Klasse
- des Parameters als Reflection Objekt zurück (wenn vorhanden).
- </para></listitem>
- <listitem><para>
- <code>getDeclaringFunction($reflectionClass = 'Zend_Reflection_Function')</code>:
- gibt die Funktion des Parameters als Reflection Objekt zurück (wenn vorhanden).
- </para></listitem>
- <listitem><para>
- <code>getType()</code>: gibt den Typ des Parameters zurück.
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.property">
- <title>Zend_Reflection_Property</title>
- <para>
- <code>Zend_Reflection_Property</code> überschreibt eine einzelne Methode um die
- Spezifikation der zurückgegebenen Reflection Objekt Klasse zu spezifizieren:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDeclaringClass($reflectionClass = 'Zend_Reflection_Class')</code>:
- empfängt die deklarierte Klasse der Eigenschaft als Reflection Objekt.
- </para></listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|