1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 20854 -->
4 <sect1 id="zend.reflection.reference">
5 <title>Zend_Reflectionリファレンス</title>
8 <classname>Zend_Reflection</classname>の様々なクラスは、
9 <acronym>PHP</acronym>の<ulink url="http://php.net/reflection">Reflection <acronym>API</acronym></ulink>の<acronym>API</acronym>に良く似ています。
11 <acronym>PHP</acronym>のReflection <acronym>API</acronym>はdocblock注釈タグの内部、パラメータ変数の型も返す型も、
16 <classname>Zend_Reflection</classname>は、
17 パラメーター変数の型や返す型を判断するために、
18 メソッドのdocblock注釈を解析します。
19 特に<code>@param</code>及び<code>@return</code>注釈が使われます。
20 しかしながら、"短い"説明や"長い"説明ばかりではなく、
25 <classname>Zend_Reflection</classname>のそれぞれのReflectionオブジェクトは、
26 <classname>Zend_Reflection_Docblock</classname>のインスタンスを返すように、
27 <code>getDocblock()</code>を上書きします。
28 このクラスはdocblock及び注釈タグを参照できるようにします。
32 <classname>Zend_Reflection_File</classname>は<acronym>PHP</acronym>ファイルの内部を参照できる新しいReflectionクラスです。
33 それを使って、<acronym>PHP</acronym>ファイルに含まれるクラスや関数、グローバルな<acronym>PHP</acronym>コードを取得できます。
37 最後に、その他のReflectionオブジェクトを返す様々なメソッドにおいて、
39 返されたReflectionオブジェクトで使用できます。
42 <sect2 id="zend.reflection.reference.docblock">
43 <title>Zend_Reflection_Docblock</title>
46 <classname>Zend_Reflection_Docblock</classname>は
47 <acronym>PHP</acronym>のReflection <acronym>API</acronym>以上に<classname>Zend_Reflection</classname>に価値を付与する心臓部です。
53 <code>getContents()</code>: docblockの完全な内容を返します
57 <code>getStartLine()</code>: 定義されたファイル内での
62 <code>getEndLine()</code>: 定義されたファイル内での
67 <code>getShortDescription()</code>: 短い、一行の説明を取得します
72 <code>getLongDescription()</code>: docblockの長い説明を取得します
76 <code>hasTag($name)</code>: 与えられた注釈タグが
81 <code>getTag($name)</code>: 与えられた注釈タグのReflectionオブジェクト、
82 または存在しない場合<constant>FALSE</constant>を返します
86 <code>getTags($filter)</code>: 全てのタグ、
87 または与えられた<varname>$filter</varname>文字列に一致する全てのタグを取得します。
88 タグは<classname>Zend_Reflection_Docblock_Tag</classname>オブジェクトの配列として返されます。
93 <sect2 id="zend.reflection.reference.docblock-tag">
94 <title>Zend_Reflection_Docblock_Tag</title>
97 <classname>Zend_Reflection_Docblock_Tag</classname>は個別の注釈タグのためのReflectionを提供します。
98 ほとんどのタグは名前と説明から構成されています。
100 適切なクラスのインスタンスを取得するための、
101 ファクトリーメソッドをクラスで提供します。
105 下記のメソッドは<classname>Zend_Reflection_Docblock_Tag</classname>のために定義されています:
110 <code>factory($tagDocblockLine)</code>: 注釈タグReflectionクラスをインスタンス化して返します。
114 <code>getName()</code>: 注釈タグの名前を返します
118 <code>getDescription()</code>: 注釈の説明を返します
123 <sect2 id="zend.reflection.reference.docblock-tag-param">
124 <title>Zend_Reflection_Docblock_Tag_Param</title>
127 <classname>Zend_Reflection_Docblock_Tag_Param</classname>は
128 <classname>Zend_Reflection_Docblock_Tag</classname>の特化したバージョンです。
129 <code>@param</code>注釈タグの説明はパラメータの型及び変数名、変数の説明から構成されています。
130 このクラスにより下記のメソッドが<classname>Zend_Reflection_Docblock_Tag</classname>に追加されます:
135 <code>getType()</code>: パラメータ変数の型を返します
139 <code>getVariableName()</code>: パラメータ変数の名前を返します
144 <sect2 id="zend.reflection.reference.docblock-tag-return">
145 <title>Zend_Reflection_Docblock_Tag_Return</title>
148 <classname>Zend_Reflection_Docblock_Tag_Param</classname>のように、
149 <classname>Zend_Reflection_Docblock_Tag_Return</classname>は
150 <classname>Zend_Reflection_Docblock_Tag</classname>の特化したバージョンです。
151 <code>@return</code>注釈タグの説明は返す型及び変数の説明から構成されています。
152 このクラスにより下記のメソッドが<classname>Zend_Reflection_Docblock_Tag</classname>に追加されます:
157 <code>getType()</code>: 戻す型を返します
162 <sect2 id="zend.reflection.reference.file">
163 <title>Zend_Reflection_File</title>
166 <classname>Zend_Reflection_File</classname>により<acronym>PHP</acronym>ファイル内部を参照できます。
167 それを使って、ファイルで定義されたクラスや関数、生の<acronym>PHP</acronym>コードを参照できます。
173 <code>getFileName()</code>: Reflectionを使用したファイルの名前を取得します
177 <code>getStartLine()</code>: ファイルの開始行を返します(常に1)
181 <code>getEndLine()</code> 最終行、ファイル中の行数を取得します
185 <code>getDocComment($reflectionClass =
186 'Zend_Reflection_Docblock')</code>: ファイルレベルのdocblock Reflectionオブジェクトを取得します
190 <code>getClasses($reflectionClass =
191 'Zend_Reflection_Class')</code>: Reflectionオブジェクトの配列を取得します。
192 ファイルに定義されているそれぞれのクラスです。
196 <code>getFunctions($reflectionClass =
197 'Zend_Reflection_Function')</code>: Reflectionオブジェクトの配列を取得します。
198 ファイルに定義されているそれぞれの関数です。
202 <code>getClass($name = null, $reflectionClass =
203 'Zend_Reflection_Class')</code>: 一つのクラスのReflectionオブジェクトの配列を取得します
207 <code>getContents()</code>: ファイルの全てのコンテンツを取得します。
212 <sect2 id="zend.reflection.reference.class">
213 <title>Zend_Reflection_Class</title>
216 <classname>Zend_Reflection_Class</classname>は<classname>ReflectionClass</classname>を拡張して、
217 その<acronym>API</acronym>に追随します。
218 ひとつ追加のメソッド、<code>getDeclaringFile()</code>を追加します。
219 それは定義されたファイルでの<classname>Zend_Reflection_File</classname> Reflectionオブジェクトを
224 さらに、下記のメソッドはReflectionオブジェクトを取り出すときに使う
225 Reflectionクラスを指定する際に追加の変数を加えます。:
230 <code>getDeclaringFile($reflectionClass = 'Zend_Reflection_File')</code>
234 <code>getDocblock($reflectionClass = 'Zend_Reflection_Docblock')</code>
238 <code>getInterfaces($reflectionClass = 'Zend_Reflection_Class')</code>
242 <code>getMethod($reflectionClass = 'Zend_Reflection_Method')</code>
246 <code>getMethods($filter = -1, $reflectionClass = 'Zend_Reflection_Method')</code>
250 <code>getParentClass($reflectionClass = 'Zend_Reflection_Class')</code>
254 <code>getProperty($name, $reflectionClass =
255 'Zend_Reflection_Property')</code>
259 <code>getProperties($filter = -1, $reflectionClass =
260 'Zend_Reflection_Property')</code>
266 <sect2 id="zend.reflection.reference.extension">
267 <title>Zend_Reflection_Extension</title>
270 <classname>Zend_Reflection_Extension</classname>は<classname>ReflectionExtension</classname>を拡張して、
271 その<acronym>API</acronym>に追随します。
272 それはReflectionオブジェクトを取り出すときに使う
273 Reflectionクラスを指定する際に追加の変数を加えて、
279 <code>getFunctions($reflectionClass =
280 'Zend_Reflection_Function')</code>: エクステンションで定義された関数を
285 <code>getClasses($reflectionClass =
286 'Zend_Reflection_Class')</code>: エクステンションで定義されたクラスを
292 <sect2 id="zend.reflection.reference.function">
293 <title>Zend_Reflection_Function</title>
296 <classname>Zend_Reflection_Function</classname>は、
297 返されたReflectionを使ってReflectionクラスを指定できるように、
298 いくつかのメソッドを上書きするばかりではなく、
299 関数の返り値を取得するメソッドを追加します。
304 <code>getDocblock($reflectionClass =
305 'Zend_Reflection_Docblock')</code>: 関数docblockの
306 Reflectionオブジェクトを取得します
310 <code>getParameters($reflectionClass =
311 'Zend_Reflection_Parameter')</code>: 関数のパラメータ
312 Reflectionオブジェクト全ての配列を取得します
316 <code>getReturn()</code>: 戻す型のReflectionオブジェクトを取得します
321 <sect2 id="zend.reflection.reference.method">
322 <title>Zend_Reflection_Method</title>
325 <classname>Zend_Reflection_Method</classname>は<classname>Zend_Reflection_Function</classname>を継承して、
331 <code>getParentClass($reflectionClass =
332 'Zend_Reflection_Class')</code>: 親クラスのReflectionオブジェクトを取得します
337 <sect2 id="zend.reflection.reference.parameter">
338 <title>Zend_Reflection_Parameter</title>
341 <classname>Zend_Reflection_Parameter</classname>は
342 戻されたReflectionオブジェクトで
343 Reflectionを使えるようにする上書きメソッドばかりではなく、
344 パラメータの型を取得するメソッドを追加します。
349 <code>getDeclaringClass($reflectionClass =
350 'Zend_Reflection_Class')</code>: もし可能ならば、
351 Reflectionオブジェクトとしてパラメータの宣言クラスを取得します。
355 <code>getClass($reflectionClass =
356 'Zend_Reflection_Class')</code>: もし可能ならば、
357 Reflectionオブジェクトとしてパラメータのクラスを取得します。
361 <code>getDeclaringFunction($reflectionClass =
362 'Zend_Reflection_Function')</code>: もし可能ならば、
363 Reflectionオブジェクトとしてパラメータの関数を取得します。
367 <code>getType()</code>: パラメータの型を取得します
372 <sect2 id="zend.reflection.reference.property">
373 <title>Zend_Reflection_Property</title>
376 <classname>Zend_Reflection_Property</classname>は、
377 戻されたReflectionオブジェクトクラスを指定するための、
383 <code>getDeclaringClass($reflectionClass =
384 'Zend_Reflection_Class')</code>: Reflectionオブジェクトとして