Maison > Article > développement back-end > Mécanisme de réflexion PHP expliqué
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.
ReflectionClass::__construct — Construire une classe ReflectionClass
public ReflectionClass::__construct ( mixed $argument )
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 ] )
/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); } }
Recommandations associées :
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!