Mécanisme de réflexion PHP expliqué

小云云
Libérer: 2023-03-21 11:00:02
original
1517 Les gens l'ont consulté

PHP 5 propose une API de réflexion complète, ajoutant la possibilité de procéder à l'ingénierie inverse des classes, des interfaces, des fonctions, des méthodes et des extensions. De plus, l'API Reflection fournit des méthodes pour extraire les commentaires de documentation des fonctions, classes et méthodes.

L'utilisation de la réflexion dans le framework tp :

  • ReflectionClass::__construct — Construire une classe ReflectionClass

public ReflectionClass::__construct ( mixed $argument )
Copier après la connexion
  • ReflectionClass::newInstanceArgs — Crée une nouvelle instance de classe à partir des arguments donnés, qui sera transmise au constructeur de la classe.

public object ReflectionClass::newInstanceArgs ([ array $args ] )
Copier après la connexion
  • /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);
        }
    }
Copier après la connexion

Recommandations associées :

Explication détaillée de la méthode de réflexion php appelant une méthode privée dans la classe d'exécution

Brève explication de l'exemple de mécanisme de réflexion php

Explication détaillée du mécanisme de réflexion php et exemples d'architecture de plug-in

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!