Maison > cadre php > PensezPHP > le corps du texte

Paramètres de liaison du conteneur ThinkPHP

咔咔
Libérer: 2020-10-12 13:59:56
original
1983 Les gens l'ont consulté
«

Cet article concerne principalement l'apprentissage de la façon dont la méthode __make est exécutée dans chaque méthode, et comment utiliser le conteneur pour appeler la configuration afin d'obtenir les informations de configuration maintenant que nous avons appris le conteneur.

Analyse de la méthode bindParams

Analysons la méthode bindParams.

Concernant le transfert de paramètres, il s'agit d'une classe de réflexion. Le deuxième paramètre ne sera pas expliqué pour le moment. Il n'y a pas encore de scénario de réponse.

La première valeur du paramètre$reflect

Utilisez la méthode de réflexion $reflect->getNumberOfParameters() pour obtenir le nombre de paramètres dans la méthode correspondante dans le cours de réflexion. D'après ce qui précède, il s'agit de la méthode __make. Le nombre de paramètres de seulement deux méthodes a été obtenu dans le code du conteneur, l'une est la méthode __make et l'autre est le constructeur de la classe de réflexion.

Comme il n'existe pas encore de scénario pour passer des variables vars, nous allons sauter cette section sans l'étudier pour le moment.

Le code$params = $reflect->getParameters(); utilise également la réflexion pour obtenir les paramètres de la méthode.

Les résultats que vous pouvez voir après l'impression sont deux ensembles de données.

Alors, d'où vient cet ensemble de données ? Faites défiler vers le haut et jetez un œil à ce qu'est ce paramètre $reflect et vous comprendrez.

La classe de réflexion thinkApp n'a pas de méthode __make, donc les paramètres du constructeur seront obtenus.

Ensuite, il existe une méthode __make dans la classe de réflexion thinkLog, donc les paramètres de __make seront renvoyés, comme indiqué ci-dessous.

Tout comme une classe comme thinkLog, qui possède à la fois une méthode __make et un constructeur, la méthode bindParams sera appelée deux fois. Vous devez tous comprendre ceci. exactement la logique de l'image ci-dessous.

L'étape suivante concerne les paramètres obtenus dans la classe de réflexion en boucle.

Récupérez le nom du paramètre et obtenez la classe de réflexion correspondante

Enfin, transmettez la classe de réflexion obtenue à la méthode getObjectParam.

Il n'y a pas beaucoup de contenu dans cette getObjectParam méthode.

Puisque $vars est un tableau vide du début à la fin, l'opération de suppression du premier élément du tableau et de détermination s'il s'agit d'une fermeture ne sera pas exécutée.

finira par revenir pour exécuter la méthode make

Ensuite, la méthode make renverra l'instance directement depuis le conteneur

Lorsqu'une classe de réflexion existe __make méthode, return $method->invokeArgs(null, $args); sera finalement exécutée, et la méthode de la classe de réflexion sera exécutée avec des paramètres

Utilisez le conteneur pour appeler la classe de configuration

Maintenant que le code source du conteneur a été lu. Je l'ai fait une fois, puis-je utiliser un conteneur pour y parvenir ?

Bien sûr, c'est possible. Ici, vous devez faire attention à l'espace de noms de Kaka Pour la commodité d'une révision future, le nom de la classe est également nommé Container, j'ai donc ajouté un alias. Le temps n'est pas nécessaire !

Pour l'instant, le code source du conteneur est presque expliqué. Kaka fera un organigramme complet plus tard pour que tout le monde puisse le consulter.

«

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!

É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!