Maison  >  Article  >  cadre php  >  L'utilisation de la réflexion dans les conteneurs ThinkPHP

L'utilisation de la réflexion dans les conteneurs ThinkPHP

咔咔
咔咔original
2020-10-12 12:55:191889parcourir
"

Dans l'article ci-dessus, l'instance renvoyée après l'exécution de la méthode make est analysée. Cet article analysera la méthode InvokeClass en détail.

"

Analyse détaillée de la méthode InvokeClass (utilisation de la réflexion)

Que vous ayez lu le flux de code ci-dessus ou l'organigramme ci-dessus, vous devez savoir où le code final ira. Une méthode invokeClass est cette méthode.

Tous les points de connaissance de cette méthode sont basés sur l'utilisation de la réflexion. Si vous ne savez pas comment faire, veuillez lire les articles ci-dessus ou précédents !

Dans la méthode invokeClass, la chose la plus importante est la méthode de liaison des paramètres bindParams La réflexion est également utilisée dans cette méthode.

Il n'est donc pas nécessaire de trop expliquer le rôle de la réflexion dans le contenant.

Avant cela, je dois expliquer cela. Quand j'ai vu cette méthode __make, je m'en suis profondément souvenu !

Cette méthode a été temporairement ignorée dans l'article précédent sur l'apprentissage de la configuration du code source de configuration, car les points de connaissances et le processus d'exécution du code-cadre accumulés à ce moment-là n'étaient pas encore au stade de l'explication de la méthode __make.

Afin d'expliquer en détail le rôle de la méthode __make dans le conteneur.

Lorsque vous imprimez la valeur de la variable de réflexion, deux objets de classe de réflexion seront renvoyés, comme indiqué ci-dessous.

Le code $reflect->hasMethod('__make') sert à déterminer s'il existe une fonction __make dans cette classe de réflexion

Le code $method = new ReflectionMethod($class, '__make'); est une méthode pour exécuter la classe de réflexion. Ici, il fait référence. à la méthode __make

Lorsque le point d'arrêt est établi, cette méthode renverra deux classes de réflexion __make existantes. En effet, seules deux classes de réflexion sont affichées lors du point d'arrêt.

Ici, nous parlons principalement de thinkConfig.

La dernière ligne de code$method->isPublic() && $method->isStatic()est de déterminer si la méthode est publique et si la méthode est statique

jusqu'à ce qu'il atteigne entrera dans la méthode $args = $this->bindParams($method, $vars); Cette méthode sera également analysée en détail ci-dessous. bindParams

C'est la fin de l'analyse détaillée de la méthode InvokeClass. Elle utilise principalement le mécanisme de réflexion pour implémenter une série de fonctions, utilise la réflexion pour l'injection de dépendances et exécute la méthode __make dans la classe

«

La persévérance dans l'apprentissage, la persévérance dans les blogs et la persévérance dans le partage sont les convictions auxquelles Kaka a toujours adhéré depuis ses débuts. J'espère que les articles de Kaka sur l'immense Internet pourront vous apporter. un peu d'aide. Je m'appelle Kaka, à la prochaine fois

»
.

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!

Déclaration:
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