"In diesem Artikel werden kurz der endgültige Ausführungsprozess des Controllers und die beiden verwendeten erweiterten Attribute untersucht. Eines ist die clevere Verwendung der Methode fastcgi_finish_request und das andere ist die Trait-Funktion. Ich habe ein gewisses Verständnis für das Konzept
Der Framework-Ausführungsprozess, das Routing und die Controller-Instanziierung, die zuvor geschrieben wurden, beginnen hier.
Führen Sie die Anwendung aus und antworten SieSie sollten alle wissen, dass dieser Teil des Codes
eine Instanz der App-Klasse zurückgibt. 🎜Alle oben genannten Tests wurden mit dem Linux-System durchgeführt, sonst werden Sie den intuitiven Effekt nicht sehen. 🎜🎜Nach der obigen Demonstration ist die Antwort sehr schnell. Nachdem der Browser reagiert hat, führt das Hintergrundprogramm weiterhin jede Sekunde einen Zeitstempel aus. 🎜🎜Das Obige ist der<span class="prefix" style="display: none;"></span><span class="content" style="display: inline-block; font-weight: normal; background: rgb(248, 57, 41); color: #ffffff; padding: 3px 10px 1px; border-radius: 0 0 13px 13px;">3. Erklärung der Merkmalsmerkmale</span><span class="suffix"></span><p data-tool="mdnice编辑器" style="padding-top: 8px; padding-bottom: 8px; line-height: 1.75; margin-top: 0.8em; margin-bottom: 0.8em;">Kaka hätte dieses Merkmal vor zwei Jahren analysieren sollen <code style="font-size: 14px; word-wrap: break-word; padding: 2px 4px; border-radius: 4px; margin: 0 2px; background-color: rgba(27,31,35,.05); font-family: Operator Mono, Consolas, Monaco, Menlo, monospace; word-break: break-all; color: rgb(271, 93, 108);">trait
Es wird oft als Superklasse bezeichnet.
Diese Funktion wurde nur in PHP5.4 hinzugefügt. Diese Funktion ist weder eine häufig verwendete Schnittstelle noch eine Klasse.
Diese Funktion soll eine große Schwäche von PHP beheben, nämlich dass es nur eine Einzelvererbung geben kann. Eine strengere Funktion ist jedoch nur eine Funktion, die der Mehrfachvererbung ähnelt.
Als nächstes zeige ich Ihnen einen Fall.
Erstellen Sie Testdatei 1 und geben Sie den entsprechenden Klassennamen zurück.
erstellt die Datei test1 und gibt den entsprechenden Klassennamen zurück
erstellt eine Controller-Datei zur Ausgabe von Informationen.
und führen Sie dann die entsprechende Superklassendatei in den Controller ein. Hier ist das erste eingekreiste Kästchen zu beachten.
Dann können Sie direkt darauf zugreifen und sehen, was zurückgegeben wird.
Sie können dem obigen Bild entnehmen, dass die Methode die Test-Superklassendatei zurückgibt, aber dieser Controller basiert auch auf dem Controller-Controller, der am Anfang des Artikels erwähnten Superklasse Implementieren Sie einfach eine Funktion mit Mehrfachvererbung.
Aber es wird hier ein Problem geben, bitte beachten Sie die Fehlermeldung unten.
Die Fehlermeldung im Bild oben wird durch die Verwendung von zwei Superklassen im Controller verursacht, wie sie im Bild unten verwendet wird.
So lösen Sie diese Fehlermeldung! Folgen Sie anschließend dem Rhythmus dieses Klicks.
Fehlermeldungen beheben
Bevor Sie das vorherige Problem lösen, müssen Sie zunächst verstehen, was dieses Problem verursacht hat.
Der Grund für diesen Fehler ist, dass die beiden referenzierten Merkmale Hello-Funktionen mit demselben Namen haben und ein Konflikt vorliegt.
Aber diese Situation kann in der täglichen Entwicklung vermieden werden, da es immer noch sehr praktisch ist, den Methodennamen manuell zu ändern, aber hier zeigt Ihnen Kaka, wie Sie dieses Problem lösen können.
Die erste besteht darin, die Methode „hello“ in einem Merkmal zu verwenden, um die Methode mit demselben Namen in einem anderen Merkmal zu überschreiben. Da die Inhalte der beiden Methoden konsistent sind, entscheide ich mich direkt dafür, sie hier zu überschreiben Geben Sie ihnen Aliase mit as, damit es keinen Konflikt mehr gibt. Das Schlüsselwort as hat eine andere Verwendung, nämlich die Zugriffskontrolle einer Methode zu ändern.
Besuchen Sie nach den Änderungen im obigen Bild erneut und sehen Sie sich die zurückgegebenen Ergebnisse an.
Dann werden einige Partner zu diesem Zeitpunkt Fragen haben, das heißt, das Falldruckergebnis war immer die Methode der Testklasse und die Methode der Test1-Klasse wurde nicht gedruckt.
Dann wie zu besuchen! Werfen wir einen Blick darauf.
Auf dem Bild oben können Sie sehen, dass die Zugriffsmethode in Alias-Zugriffssteuerung geändert wurde. Schauen wir uns dann die Zugriffsergebnisse an.
Wie Sie auf dem Bild oben sehen können, ist das Rückgabeergebnis das Rückgabeergebnis der Superklasse Test1.
Was die Verwendung von as angeht, müssen Sie nach der Verwendung suchen. Manchmal kann man viel Wissen lernen, indem man auf die Details achtet.
Dies ist die Quellcode-Analyse des Controllers. Kaka analysiert, wie der Controller durch den Quellcode instanziiert wird.
Wir haben auch noch einmal die Aufrufbeziehung zwischen ArrayAccess und magischen Methoden besprochen. Sie müssen über das Problem nachdenken.
So reagieren Sie auf Daten nach dem Zugriff auf den Controller usw.
Ich habe auch etwas über die clevere Verwendung der Methode fastcgi_finish_request im Quellcode erfahren, aber wenn Sie diese Funktion verwenden, müssen Sie die beiden genannten Punkte zu Kaka beachten.
Abschließend gibt es noch eine einfache Fallbeschreibung der Superklasse.
„Beharrlichkeit beim Lernen, Beharrlichkeit beim Bloggen und Beharrlichkeit beim Teilen sind die Überzeugungen, die Kaka seit seiner Karriere vertritt. 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 vonFeatures fastcgi_finish_request und Trait, die vom ThinkPHP-Framework verwendet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!