| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.reflection.reference">
- <title>Zend_Reflectionリファレンス</title>
- <para>
- <classname>Zend_Reflection</classname>の様々なクラスは、
- <acronym>PHP</acronym>の<ulink url="http://php.net/reflection">Reflection <acronym>API</acronym></ulink>の<acronym>API</acronym>に良く似ています。
- しかし、一つ重要な違いがあります。
- <acronym>PHP</acronym>のReflection <acronym>API</acronym>はdocblock注釈タグの内部、パラメータ変数の型も返す型も、
- 参照することができません。
- </para>
- <para>
- <classname>Zend_Reflection</classname>は、
- パラメーター変数の型や返す型を判断するために、
- メソッドのdocblock注釈を解析します。
- 特に<code>@param</code>及び<code>@return</code>注釈が使われます。
- しかしながら、"短い"説明や"長い"説明ばかりではなく、
- その他の注釈タグも検査できます。
- </para>
- <para>
- <classname>Zend_Reflection</classname>のそれぞれのReflectionオブジェクトは、
- <classname>Zend_Reflection_Docblock</classname>のインスタンスを返すように、
- <code>getDocblock()</code>を上書きします。
- このクラスはdocblock及び注釈タグを参照できるようにします。
- </para>
- <para>
- <classname>Zend_Reflection_File</classname>は<acronym>PHP</acronym>ファイルの内部を参照できる新しいReflectionクラスです。
- それを使って、<acronym>PHP</acronym>ファイルに含まれるクラスや関数、グローバルな<acronym>PHP</acronym>コードを取得できます。
- </para>
- <para>
- 最後に、その他のReflectionオブジェクトを返す様々なメソッドにおいて、
- 2番目の引数としてクラス名を、
- 返されたReflectionオブジェクトで使用できます。
- </para>
- <sect2 id="zend.reflection.reference.docblock">
- <title>Zend_Reflection_Docblock</title>
- <para>
- <classname>Zend_Reflection_Docblock</classname>は
- <acronym>PHP</acronym>のReflection <acronym>API</acronym>以上に<classname>Zend_Reflection</classname>に価値を付与する心臓部です。
- それには下記のメソッドがあります:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getContents()</code>: docblockの完全な内容を返します
- </para></listitem>
- <listitem><para>
- <code>getStartLine()</code>: 定義されたファイル内での
- docblock開始位置を返します
- </para></listitem>
- <listitem><para>
- <code>getEndLine()</code>: 定義されたファイル内での
- docblock終了行を返します
- </para></listitem>
- <listitem><para>
- <code>getShortDescription()</code>: 短い、一行の説明を取得します
- (たいていはdocblockの最初の行)
- </para></listitem>
- <listitem><para>
- <code>getLongDescription()</code>: docblockの長い説明を取得します
- </para></listitem>
- <listitem><para>
- <code>hasTag($name)</code>: 与えられた注釈タグが
- docblockにあるかどうか判断します
- </para></listitem>
- <listitem><para>
- <code>getTag($name)</code>: 与えられた注釈タグのReflectionオブジェクト、
- または存在しない場合<constant>FALSE</constant>を返します
- </para></listitem>
- <listitem><para>
- <code>getTags($filter)</code>: 全てのタグ、
- または与えられた<varname>$filter</varname>文字列に一致する全てのタグを取得します。
- タグは<classname>Zend_Reflection_Docblock_Tag</classname>オブジェクトの配列として返されます。
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.docblock-tag">
- <title>Zend_Reflection_Docblock_Tag</title>
- <para>
- <classname>Zend_Reflection_Docblock_Tag</classname>は個別の注釈タグのためのReflectionを提供します。
- ほとんどのタグは名前と説明から構成されています。
- いくつかの特別なタグの場合には、
- 適切なクラスのインスタンスを取得するための、
- ファクトリーメソッドをクラスで提供します。
- </para>
- <para>
- 下記のメソッドは<classname>Zend_Reflection_Docblock_Tag</classname>のために定義されています:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>factory($tagDocblockLine)</code>: 注釈タグReflectionクラスをインスタンス化して返します。
- </para></listitem>
- <listitem><para>
- <code>getName()</code>: 注釈タグの名前を返します
- </para></listitem>
- <listitem><para>
- <code>getDescription()</code>: 注釈の説明を返します
- </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>は
- <classname>Zend_Reflection_Docblock_Tag</classname>の特化したバージョンです。
- <code>@param</code>注釈タグの説明はパラメータの型及び変数名、変数の説明から構成されています。
- このクラスにより下記のメソッドが<classname>Zend_Reflection_Docblock_Tag</classname>に追加されます:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getType()</code>: パラメータ変数の型を返します
- </para></listitem>
- <listitem><para>
- <code>getVariableName()</code>: パラメータ変数の名前を返します
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.docblock-tag-return">
- <title>Zend_Reflection_Docblock_Tag_Return</title>
- <para>
- <classname>Zend_Reflection_Docblock_Tag_Param</classname>のように、
- <classname>Zend_Reflection_Docblock_Tag_Return</classname>は
- <classname>Zend_Reflection_Docblock_Tag</classname>の特化したバージョンです。
- <code>@return</code>注釈タグの説明は返す型及び変数の説明から構成されています。
- このクラスにより下記のメソッドが<classname>Zend_Reflection_Docblock_Tag</classname>に追加されます:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getType()</code>: 戻す型を返します
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.file">
- <title>Zend_Reflection_File</title>
- <para>
- <classname>Zend_Reflection_File</classname>により<acronym>PHP</acronym>ファイル内部を参照できます。
- それを使って、ファイルで定義されたクラスや関数、生の<acronym>PHP</acronym>コードを参照できます。
- 下記の関数が定義されています:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getFileName()</code>: Reflectionを使用したファイルの名前を取得します
- </para></listitem>
- <listitem><para>
- <code>getStartLine()</code>: ファイルの開始行を返します(常に1)
- </para></listitem>
- <listitem><para>
- <code>getEndLine()</code> 最終行、ファイル中の行数を取得します
- </para></listitem>
- <listitem><para>
- <code>getDocComment($reflectionClass =
- 'Zend_Reflection_Docblock')</code>: ファイルレベルのdocblock Reflectionオブジェクトを取得します
- </para></listitem>
- <listitem><para>
- <code>getClasses($reflectionClass =
- 'Zend_Reflection_Class')</code>: Reflectionオブジェクトの配列を取得します。
- ファイルに定義されているそれぞれのクラスです。
- </para></listitem>
- <listitem><para>
- <code>getFunctions($reflectionClass =
- 'Zend_Reflection_Function')</code>: Reflectionオブジェクトの配列を取得します。
- ファイルに定義されているそれぞれの関数です。
- </para></listitem>
- <listitem><para>
- <code>getClass($name = null, $reflectionClass =
- 'Zend_Reflection_Class')</code>: 一つのクラスのReflectionオブジェクトの配列を取得します
- </para></listitem>
- <listitem><para>
- <code>getContents()</code>: ファイルの全てのコンテンツを取得します。
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.class">
- <title>Zend_Reflection_Class</title>
- <para>
- <classname>Zend_Reflection_Class</classname>は<classname>ReflectionClass</classname>を拡張して、
- その<acronym>API</acronym>に追随します。
- ひとつ追加のメソッド、<code>getDeclaringFile()</code>を追加します。
- それは定義されたファイルでの<classname>Zend_Reflection_File</classname> Reflectionオブジェクトを
- 取得するために使われるでしょう。
- </para>
- <para>
- さらに、下記のメソッドはReflectionオブジェクトを取り出すときに使う
- Reflectionクラスを指定する際に追加の変数を加えます。:
- </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>
- <classname>Zend_Reflection_Extension</classname>は<classname>ReflectionExtension</classname>を拡張して、
- その<acronym>API</acronym>に追随します。
- それはReflectionオブジェクトを取り出すときに使う
- Reflectionクラスを指定する際に追加の変数を加えて、
- 下記のメソッドを上書きします。
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getFunctions($reflectionClass =
- 'Zend_Reflection_Function')</code>: エクステンションで定義された関数を
- 示す配列を取得します。
- </para></listitem>
- <listitem><para>
- <code>getClasses($reflectionClass =
- 'Zend_Reflection_Class')</code>: エクステンションで定義されたクラスを
- 示す配列を取得します。
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.function">
- <title>Zend_Reflection_Function</title>
- <para>
- <classname>Zend_Reflection_Function</classname>は、
- 返されたReflectionを使ってReflectionクラスを指定できるように、
- いくつかのメソッドを上書きするばかりではなく、
- 関数の返り値を取得するメソッドを追加します。
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDocblock($reflectionClass =
- 'Zend_Reflection_Docblock')</code>: 関数docblockの
- Reflectionオブジェクトを取得します
- </para></listitem>
- <listitem><para>
- <code>getParameters($reflectionClass =
- 'Zend_Reflection_Parameter')</code>: 関数のパラメータ
- Reflectionオブジェクト全ての配列を取得します
- </para></listitem>
- <listitem><para>
- <code>getReturn()</code>: 戻す型のReflectionオブジェクトを取得します
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.method">
- <title>Zend_Reflection_Method</title>
- <para>
- <classname>Zend_Reflection_Method</classname>は<classname>Zend_Reflection_Function</classname>を継承して、
- 追加のメソッドを1つだけ上書きします:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getParentClass($reflectionClass =
- 'Zend_Reflection_Class')</code>: 親クラスのReflectionオブジェクトを取得します
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.parameter">
- <title>Zend_Reflection_Parameter</title>
- <para>
- <classname>Zend_Reflection_Parameter</classname>は
- 戻されたReflectionオブジェクトで
- Reflectionを使えるようにする上書きメソッドばかりではなく、
- パラメータの型を取得するメソッドを追加します。
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDeclaringClass($reflectionClass =
- 'Zend_Reflection_Class')</code>: もし可能ならば、
- Reflectionオブジェクトとしてパラメータの宣言クラスを取得します。
- </para></listitem>
- <listitem><para>
- <code>getClass($reflectionClass =
- 'Zend_Reflection_Class')</code>: もし可能ならば、
- Reflectionオブジェクトとしてパラメータのクラスを取得します。
- </para></listitem>
- <listitem><para>
- <code>getDeclaringFunction($reflectionClass =
- 'Zend_Reflection_Function')</code>: もし可能ならば、
- Reflectionオブジェクトとしてパラメータの関数を取得します。
- </para></listitem>
- <listitem><para>
- <code>getType()</code>: パラメータの型を取得します
- </para></listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.reflection.reference.property">
- <title>Zend_Reflection_Property</title>
- <para>
- <classname>Zend_Reflection_Property</classname>は、
- 戻されたReflectionオブジェクトクラスを指定するための、
- メソッドを1つ上書きします。:
- </para>
- <itemizedlist>
- <listitem><para>
- <code>getDeclaringClass($reflectionClass =
- 'Zend_Reflection_Class')</code>: Reflectionオブジェクトとして
- プロパティーの宣言クラスを取得します
- </para></listitem>
- </itemizedlist>
- </sect2>
- </sect1>
|