"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
«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!