| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.reflection.reference">
- <title>Zend_Reflection Referenz</title>
- <para>
- Die verschiedenen Klassen in <classname>Zend_Reflection</classname> mimen die
- <acronym>API</acronym> von <acronym>PHP</acronym>'s <ulink
- url="http://php.net/reflection">Reflection <acronym>API</acronym></ulink> - mit einem
- wichtigen Unterschied. <acronym>PHP</acronym>'s Reflection <acronym>API</acronym>
- 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>
- <classname>Zend_Reflection</classname> 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 <classname>Zend_Reflection</classname> überschreibt die
- <methodname>getDocblock()</methodname> Methode um eine Instanz von
- <classname>Zend_Reflection_Docblock</classname> zurückzugeben. Die Klasse bietet
- Introspektion in die DocBlocks und Annotation Tags.
- </para>
- <para>
- <classname>Zend_Reflection_File</classname> ist eine neue Reflection Klasse welche die
- Introspektion von <acronym>PHP</acronym> Dateien erlaubt. Mit Ihr kann man die Klassen,
- Funktionen und globalen <acronym>PHP</acronym> 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>
- <classname>Zend_Reflection_Docblock</classname> ist das Herz von
- <classname>Zend_Reflection_Docblock</classname> Bonus über <acronym>PHP</acronym>'s
- Reflection <acronym>API</acronym>. Es bietet die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>getContents()</methodname>: Gibt den kompletten Inhalt des DocBlocks
- zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getStartLine()</methodname>: Gibt die Startposition des DocBlocks in
- der definierten Datei zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getEndLine()</methodname>: Gibt die letzte Zeile des DocBlocks in
- der definierten Datei zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getShortDescription()</methodname>: Gibt die kurze, ein-zeilige
- Beschreibung zurück (normalerweise die erste Zeile des DocBlocks).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getLongDescription()</methodname>: Gibt die lange Beschreibung des
- DocBlocks zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>hasTag($name)</methodname>: Erkennt ob der DocBlock das angegebene
- Annotation Tag besitzt.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getTag($name)</methodname>: Empfängt das Reflection Objekt des
- angegebenen Annotation Tags, oder ein boolsches <constant>FALSE</constant> wenn
- es nicht vorhanden ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getTags($filter)</methodname>: Gibt alle Tags zurück, oder alle Tags
- die dem angegebenen <varname>$filter</varname> 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>
- <classname>Zend_Reflection_Docblock_Tag</classname> 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 <classname>Zend_Reflection_Docblock_Tag</classname>
- definiert:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>factory($tagDocblockLine)</methodname>: Instanziert die
- entsprechende Reflection Klasse des Tags und gibt diese zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getName()</methodname>: Gibt den Namen des Annotation Tags zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getDescription()</methodname>: 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>
- <classname>Zend_Reflection_Docblock_Tag_Param</classname> ist eine spezialisierte
- Version von <classname>Zend_Reflection_Docblock_Tag</classname>. 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
- <classname>Zend_Reflection_Docblock_Tag</classname> hinzu:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>getType()</methodname>: Gibt den Variablentyp des Parameters zurück.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getVariableName()</methodname>: 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 <classname>Zend_Reflection_Docblock_Tag_Param</classname> ist
- <classname>Zend_Reflection_Docblock_Tag_Return</classname> eine spezialisierte Version
- von <classname>Zend_Reflection_Docblock_Tag</classname>. 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><methodname>getType()</methodname>: gibt den Rückgabetyp zurück.</para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.file">
- <title>Zend_Reflection_File</title>
- <para>
- <classname>Zend_Reflection_File</classname> bietet Introspection in
- <acronym>PHP</acronym> Dateien. Mit Ihr kann man Klassen, Funktionen und reinen
- <acronym>PHP</acronym> Code der in einer Datei definiert ist, betrachten. Sie definiert
- die folgenden Methoden:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>getFileName()</methodname>: empfängt den Dateinamen der Datei die
- reflektiert wird.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getStartLine()</methodname>: empfängt den Startwert der Datei (Immer
- "1").
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getEndLine()</methodname>: empfängt die letzte Teile / Anzahl der
- Linien in der Datei.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getDocComment($reflectionClass =
- 'Zend_Reflection_Docblock')</methodname>: empfängt das Reflection Objekt des
- Datei-Level DocBlocks.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getClasses($reflectionClass = 'Zend_Reflection_Class')</methodname>:
- empfängt ein Array von Reflection Objekten, eines für jede Klasse die in der
- Datei definiert ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getFunctions($reflectionClass =
- 'Zend_Reflection_Function')</methodname>: empfängt ein Array von Reflection
- Objekten, eines für jede Funktion die in der Datei definiert ist.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getClass($name = null, $reflectionClass =
- 'Zend_Reflection_Class')</methodname>: empfängt das Reflection Objekt für
- eine einzelne Klasse.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getContents()</methodname>: empfängt den kompletten Inhalt der
- Datei.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.class">
- <title>Zend_Reflection_Class</title>
- <para>
- <classname>Zend_Reflection_Class</classname> erweitert <code>ReflectionClass</code> und
- folgt dessen <acronym>API</acronym>. Sie fügt eine zusätzliche,
- <methodname>getDeclaringFile()</methodname>, Methode hinzu, welche verwendet werden kann
- um das <classname>Zend_Reflection_File</classname> 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>
- <methodname>getDeclaringFile($reflectionClass =
- 'Zend_Reflection_File')</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getDocblock($reflectionClass =
- 'Zend_Reflection_Docblock')</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getInterfaces($reflectionClass =
- 'Zend_Reflection_Class')</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getMethod($reflectionClass = 'Zend_Reflection_Method')</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getMethods($filter = -1, $reflectionClass =
- 'Zend_Reflection_Method')</methodname>
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getParentClass($reflectionClass =
- 'Zend_Reflection_Class')</methodname>
- </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>
- <classname>Zend_Reflection_Extension</classname> erweitert
- <code>ReflectionExtension</code> und folgt dessen <acronym>API</acronym>. 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>
- <methodname>getFunctions($reflectionClass =
- 'Zend_Reflection_Function')</methodname>: empfängt ein Array von Reflection
- Objekten welche die Funktionen repräsentieren die von der Erweiterung definiert
- werden.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getClasses($reflectionClass = 'Zend_Reflection_Class')</methodname>:
- 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>
- <classname>Zend_Reflection_Function</classname> 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>
- <methodname>getDocblock($reflectionClass =
- 'Zend_Reflection_Docblock')</methodname>: empfängt das Reflection Objekt des
- Funktions DocBlocks.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getParameters($reflectionClass =
- 'Zend_Reflection_Parameter')</methodname>: empfängt ein Array aller
- Reflection Objekte für die Parameter der Funktionen.
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getReturn()</methodname>: empfängt das Reflection Objekt des
- Rückgabewerts.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.method">
- <title>Zend_Reflection_Method</title>
- <para>
- <classname>Zend_Reflection_Method</classname> spiegelt
- <classname>Zend_Reflection_Function</classname> und überschreibt nur eine zusätzliche
- Methode:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>getParentClass($reflectionClass =
- 'Zend_Reflection_Class')</methodname>: empfängt das Reflection Objekt der
- Eltern-Klasse.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.parameter">
- <title>Zend_Reflection_Parameter</title>
- <para>
- <classname>Zend_Reflection_Parameter</classname> 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>
- <methodname>getDeclaringClass($reflectionClass =
- 'Zend_Reflection_Class')</methodname>: gibt die deklarierte Klasse des
- Parameters als Reflection Objekt zurück (wenn vorhanden).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getClass($reflectionClass = 'Zend_Reflection_Class')</methodname>:
- gibt die Klasse des Parameters als Reflection Objekt zurück (wenn vorhanden).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getDeclaringFunction($reflectionClass =
- 'Zend_Reflection_Function')</methodname>: gibt die Funktion des Parameters
- als Reflection Objekt zurück (wenn vorhanden).
- </para>
- </listitem>
- <listitem>
- <para>
- <methodname>getType()</methodname>: gibt den Typ des Parameters zurück.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.property">
- <title>Zend_Reflection_Property</title>
- <para>
- <classname>Zend_Reflection_Property</classname> überschreibt eine einzelne Methode um
- die Spezifikation der zurückgegebenen Reflection Objekt Klasse zu spezifizieren:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- <methodname>getDeclaringClass($reflectionClass =
- 'Zend_Reflection_Class')</methodname>: empfängt die deklarierte Klasse der
- Eigenschaft als Reflection Objekt.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|