Heim >PHP-Framework >Denken Sie an PHP >Die Verwendung von Reflection in ThinkPHP-Containern

Die Verwendung von Reflection in ThinkPHP-Containern

咔咔
咔咔Original
2020-10-12 12:55:191913Durchsuche
"

Im obigen Artikel wird die nach der Ausführung der make-Methode zurückgegebene Instanz analysiert. In diesem Artikel wird die invokeClass-Methode im Detail analysiert.

"

Die InvokeClass-Methode wird im Detail analysiert (Verwendung von Reflektion). )

Ob es ist Nachdem Sie den Codefluss oben oder das Flussdiagramm oben gelesen haben, müssen Sie wissen, dass der endgültige Code in eine Richtung gehtinvokeClass, das ist die Methode. invokeClass,就是这个方法。

这个方法中全部都是利用反射的知识点,不会的在去看上文或者之前的文章吧!

invokeClass方法中,最重要的就是绑定参数的这个方法bindParams

Alle Wissenspunkte dieser Methode basieren auf der Verwendung von Reflexion. Wenn Sie nicht wissen, wie, lesen Sie bitte die obigen oder vorherigen Artikel!

In bindParams , Auch diese Methode nutzt vollständig die Reflexion.

Über die Rolle der Reflexion im Container muss also nicht allzu viel erklärt werden.

Vorher muss ich das erklären. Als ich diese __make-Methode sah, erinnerte ich mich tief daran!

Diese Methode wurde im vorherigen Artikel zum Erlernen der Konfiguration des Konfigurationsquellcodes vorübergehend übersprungen, da sich die zu diesem Zeitpunkt gesammelten Wissenspunkte und der Framework-Code-Ausführungsprozess noch nicht in der Phase der Erklärung der __make-Methode befanden. 🎜🎜Um die Rolle der __make-Methode im Container ausführlich zu erläutern. 🎜

Wenn Sie den Wert der Reflect-Variablen drucken, werden zwei Reflection-Klassenobjekte zurückgegeben, wie unten gezeigt.

Code代码$method = new ReflectionMethod($class, '__make');就是执行反射类的一个方法  这里就指的是__make方法

当断点这个method就会返回俩个存在__make反射类,这里是因为断点了只有显示了俩个反射类。

这里主要谈论thinkConfig.

最后一行代码$method->isPublic() && $method->isStatic()就是判断方法是不是公公共的    判断方法是不是静态的

直到运行到$args = $this->bindParams($method, $vars);这行才会进入到bindParams

code$method = new ReflectionMethod($class, '__make'); ist eine Methode zum Ausführen der Reflektionsklasse. Hier bezieht es sich auf die __make-Methode

Wenn der Haltepunkt erreicht ist Diese Methode gibt zwei __make-Reflexionsklassen zurück. Dies liegt daran, dass aufgrund von Haltepunkten nur zwei Reflexionsklassen angezeigt werden. 🎜🎜Hier sprechen wir hauptsächlich über thinkConfig.🎜🎜Letzte Zeile von code$args = $this->bindParams($method, $vars);Diese Zeile wird bindParams-Methode, diese Methode wird unten auch eine detaillierte Analyse liefern. 🎜🎜Die detaillierte Analyse der invokeClass-Methode endet hier. Sie verwendet hauptsächlich den Reflexionsmechanismus, um eine Reihe von Funktionen zu implementieren, verwendet Reflexion, um eine Abhängigkeitsinjektion durchzuführen, und führt die __make-Methode in der Klasse aus

Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, an denen Kaka seit seiner Karriere festhält. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können Kaka, wir sehen uns in der nächsten Ausgabe

Das obige ist der detaillierte Inhalt vonDie Verwendung von Reflection in ThinkPHP-Containern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn