PHPリフレクション
Nette\Utils\Reflection は、PHPリフレクションのための便利な関数を持つ静的クラスです。その目的は、ネイティブクラスの欠点を修正し、異なるPHPバージョン間で動作を統一することです。
インストール:
すべての例は、エイリアスが作成されていることを前提としています:
areCommentsAvailable(): bool
リフレクションがPHPDocコメントにアクセスできるかどうかを調べます。コメントはオペコードキャッシュのために利用できない場合があります。例えば、opcache.save-comments ディレクティブを参照してください。
expandClassName(string $name, ReflectionClass $context): string
クラス名 $name
をクラス $context
のコンテキストで、つまりその名前空間と定義されたエイリアスのコンテキストで完全な名前に展開します。つまり、PHPパーサーがクラス
$context
の本体に書かれていた場合に $name
をどのように理解するかを示します。
getMethodDeclaringMethod(ReflectionMethod $method): ReflectionMethod
メソッド $method
の宣言を含むメソッドのリフレクションを返します。通常、各メソッドは自身の宣言ですが、メソッドの本体はトレイト内にあり、異なる名前で存在することもあります。
PHPは実際の宣言を特定するための十分な情報を提供しないため、Netteは信頼できるはずの独自のヒューリスティックを使用します。
getPropertyDeclaringClass(ReflectionProperty $prop): ReflectionClass
プロパティ $prop
の宣言を含むクラスまたはトレイトのリフレクションを返します。プロパティはトレイト内で宣言されることもあります。
PHPは実際の宣言を特定するための十分な情報を提供しないため、Netteは信頼できるとは限らない独自のヒューリスティックを使用します。
isBuiltinType(string $type): bool
$type
がPHPの組み込み型かどうかを調べます。そうでない場合は、クラス名です。
Nette\Utils\Validator::isBuiltinType() を使用してください。
toString($reflection): string
リフレクションを人間が読める文字列に変換します。