ホームページ  >  記事  >  バックエンド開発  >  PHPのリフレクションメカニズムの説明

PHPのリフレクションメカニズムの説明

小云云
小云云オリジナル
2018-03-14 09:54:591571ブラウズ

PHP 5 は完全なリフレクション API を備えており、クラス、インターフェイス、関数、メソッド、拡張機能をリバース エンジニアリングする機能が追加されています。 さらに、Reflection API は、関数、クラス、メソッドからドキュメント コメントを抽出するメソッドを提供します。

tp フレームワークでのリフレクションの使用:

  • ReflectionClass::__construct — ReflectionClass クラスを構築します

public ReflectionClass::__construct ( mixed $argument )
  • ReflectionClass::newInstanceArgs — 指定されたパラメーターから新しいクラス インスタンスを作成します。指定されたパラメーターが渡されます。クラスのコンストラクターに。

public object ReflectionClass::newInstanceArgs ([ array $args ] )
  • /thinkphp/library/think/Container.php

 /**
     * 调用反射执行类的实例化 支持依赖注入
     * @access public
     * @param  string    $class 类名
     * @param  array     $vars  参数
     * @return mixed
     */
    public function invokeClass($class, $vars = [])
    {
        try {            $reflect = new ReflectionClass($class);            $constructor = $reflect->getConstructor();            //用于支持依赖的注入
            $args = $constructor ? $this->bindParams($constructor, $vars) : [];            return $reflect->newInstanceArgs($args);
        } catch (ReflectionException $e) {            throw new ClassNotFoundException('class not exists: ' . $class, $class);
        }
    }

関連推奨事項:

実行クラスでプライベートメソッドを呼び出すPHPリフレクションメソッドの詳細説明

PHPリフレクションメカニズムの簡単な説明例

PHPのリフレクションメカニズムとプラグインアーキテクチャの例の詳細な説明

以上がPHPのリフレクションメカニズムの説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。