Dieser Artikel führt hauptsächlich eine einfache Ausführungsanalyse des Quellcodes von Config durch. Ich hoffe, Sie erhalten ein tieferes Verständnis vom Diagramm bis zum Code. Das oben erwähnte Yaconf spiegelt sich hier wider, und jeder Artikel soll den Weg für das Folgende ebnen.
Obwohl das oben genannte Yaconf für die Konfigurationsquellcodeanalyse nicht sehr hilfreich ist, erweitert es auch Ihr Denken Zukunft.
Kommen wir zum Punkt. Wenn Sie wissen möchten, wie Config geladen und analysiert wird, zeichnen wir zunächst ein Bild. Werfen wir einen Blick auf den Ausführungsprozess des Ladens der Konfiguration.
Zurück zu public/index.php
, ich habe in der vorherigen Ausgabe erwähnt, dass das automatische Laden von Klassen während des Ladevorgangs der Datei base.php ausgeführt wird.
Dann ist das Laden der Konfiguration im Bild unten dargestellt. Hier geht es um Container, und es wird ein separates Thema zur Analyse der Container geben.
Keine weitere Erklärung. Dieser Code führt die Ausführungsmethode der Datei „D:phpstudy_proWWWThinkPHPSourceCodeAnalysisthinkphplibrarythinkApp.php“ aus.
Und in Was in der run
-Methode verfolgt werden muss, ist Then
run
方法中需要追踪的是initialize
应用初始化这个函数
接着在initialize
这个方法中就会看到配置文件的蛛丝马迹,随之而来就是一个初始化应用init
直到走到init方法中,才算是进入了主题。
开始了自动加载配置文件,并且还调用了config类中的load方法,也是需要一起阅读的。
来到这里之后需要简单的进行解读一下
这段代码会直接走到elseif中,因为在app目录下没有设置config目录
并且这里有个configPath这个属性熟悉吧!这个值最终就是D:phpstudy_proWWWThinkPHPSourceCodeAnalysisconfig
Erst wenn Sie die Init-Methode erreichen, geben Sie das Thema ein.
D:phpstudy_proWWWThinkPHPSourceCodeAnalysisconfig
Alle Dateien im Konfigurationsverzeichnis auslesen. 🎜🎜An die Lademethode der Konfigurationsklasse übergeben🎜Hier sind einige Wissenspunkte zu erwähnen, lassen Sie uns sie einfach noch einmal durchgehen
In diesem Code gibt es ein Attribut configExt. Dieser Wert wird aus der Umgebungsvariablen ausgelesen . Überzeugungen gehalten. Ich hoffe, dass Kakas Artikel im riesigen Internet Ihnen ein wenig helfen können. Ich bin Kaka, bis zum nächsten Mal.
Das obige ist der detaillierte Inhalt vonAusführungsprozess des ThinkPHP-Konfigurationsquellcodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!