Inhaltsverzeichnis
1. Offizielle Erklärung
2. TP5 wird mit Hooks geliefert (die Tags sind bereits im TP-Framework vergraben, wir müssen nur die entsprechenden Funktionen konfigurieren und implementieren, um sie zu verwenden)
3. Die Registrierung und Überwachung von Hook-Funktionen hängt von thinkHook.php ab.
4 Für die Hook-Funktionen, die nur vom System bereitgestellt werden, können wir sie in applicationtags.php registrieren oder Hook::add() zum Hinzufügen verwenden ihnen.
5. Bindung von Hook-Funktionen.
Heim PHP-Framework Denken Sie an PHP Einführung des Hook-Mechanismus im TP5-Framework

Einführung des Hook-Mechanismus im TP5-Framework

May 08, 2021 pm 05:01 PM
tp5

Die folgende Tutorial-Kolumne von thinkphp stellt Ihnen den Hook-Mechanismus im tp5-Framework vor. Ich hoffe, dass es für Freunde in Not hilfreich ist!

1. Offizielle Erklärung

Verhalten ist eine Schlüsselerweiterung im ThinkPHP-Erweiterungsmechanismus. Verhalten kann unabhängig aufgerufen oder an ein Tag zum Abhören gebunden werden. Auch Verhalten spielt eine wichtige Rolle ist im ThinkPHP-Framework von großer Bedeutung.

2. TP5 wird mit Hooks geliefert (die Tags sind bereits im TP-Framework vergraben, wir müssen nur die entsprechenden Funktionen konfigurieren und implementieren, um sie zu verwenden)

  1. app_init-Anwendungsinitialisierungs-Tag-Bit, Hook in der initCommon-Funktion von thinkApp .php: :listen('app_init'); empfängt keine Parameter.
  2. app_begin Anwendungsstart-Tag in der Ausführungsfunktion von thinkApp.php wird nach dem Laden von Routing- und Anforderungsinformationen ausgeführt. Es erhält einen Parameter, der die Planungsinformationen dieser Anfrage speichert.
  3. module_init Modulinitialisierungs-Tag-Bit in der Modulfunktion von thinkApp.php wird vor dem Laden des Anforderungscontrollers ausgeführt, empfängt einen Parameter und speichert die Anforderungsinformationen.
  4. action_init Controller-Start-Tag, in der Modulfunktion von thinkApp.php, nach dem Laden des Controllers wird es ausgeführt, bevor Reflektion zum Anfordern des Controllers verwendet wird. Es empfängt einen Parameter, der ein Array ist. Das erste Element ist das Anforderungs-Controller-Instanzobjekt und die zweite Funktion ist der Name der auszuführenden Controller-Funktion.
  5. view_filter View-Ausgabefilter-Tag-Bit empfängt in der Abruffunktion von thinkView.php einen Parameter, den View-String.
  6. app_end Das Anwendungsend-Tag ist in der Ausführungsfunktion in thinkApp.php Hook::listen(‘app_end’);
  7. log_write Das Protokollschreibmethoden-Tag wird ausgeführt, bevor Log::wirte aufgerufen wird, um das Protokoll aufzuzeichnen. Empfängt einen Parameter, die zu schreibenden Protokollinformationen.
  8. response_end Das Antwort-End-Tag ist. In der Sendefunktion von thinkResponse.php wird sie ausgeführt, nachdem auf die Client-Anfrage geantwortet wurde.

3. Die Registrierung und Überwachung von Hook-Funktionen hängt von thinkHook.php ab.

4 Für die Hook-Funktionen, die nur vom System bereitgestellt werden, können wir sie in applicationtags.php registrieren oder Hook::add() zum Hinzufügen verwenden ihnen.

> 1. 官方文档数tags.php会自动加载,但是经测试我下载的tp5不会自动加载tags.php文件,所以就手动在think\start.php文件的App::run()->send();函数之前写了一行代码用于,注册tags文件中的钩子实现。代码为
"php
    // 加载Hook
    Hook::import(require APP_PATH . '/tags.php');
"
> 2. 也可以使用Hook::add和Hook::listen来添加自己的钩子函数。Hook::listen()相当于是标签位,Hook::add()则相当于是对标签位相应的实现。所以要确保Hook::add()在Hoo::listen之前执行,不然就没什么用处了。
Nach dem Login kopieren

5. Bindung von Hook-Funktionen.

Die Hook-Funktion kann an eine Klasse allein, eine Methode in der Klasse oder direkt an eine anonyme Funktion gebunden werden. Wenn es an eine Klasse gebunden ist und eine Ausführungsfunktion in der Klasse vorhanden ist, wird die Ausführungsfunktion direkt ausgeführt. Wenn keine Ausführungsfunktion und eine Funktion mit demselben Namen wie der Hook vorhanden ist, wird die Funktion ausgeführt. (Hinweis: Die Hook-Funktion wird in Kamel-Schreibweise benannt und die Priorität des Hook-Funktionsnamens ist höher als die Priorität der Run-Funktion)

Das obige ist der detaillierte Inhalt vonEinführung des Hook-Mechanismus im TP5-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie kann ich ThinkPhp verwenden, um Befehlszeilenanwendungen zu erstellen? Wie kann ich ThinkPhp verwenden, um Befehlszeilenanwendungen zu erstellen? Mar 12, 2025 pm 05:48 PM

Dieser Artikel zeigt, dass die Befehlszeilenanwendungen (CLIs) mit der CLI-Funktionen von ThinkPhp gebaut werden. Es betont Best Practices wie modulares Design, Abhängigkeitsinjektion und robust

Was sind die wichtigsten Überlegungen für die Verwendung von ThinkPhp in einer serverlosen Architektur? Was sind die wichtigsten Überlegungen für die Verwendung von ThinkPhp in einer serverlosen Architektur? Mar 18, 2025 pm 04:54 PM

In dem Artikel werden wichtige Überlegungen zur Verwendung von ThinkPhp in serverlosen Architekturen erörtert, wobei der Schwerpunkt auf Leistungsoptimierung, staatslosem Design und Sicherheit liegt. Es unterstreicht Vorteile wie Kosteneffizienz und Skalierbarkeit, befasst sich aber auch mit Herausforderungen

Was sind die erweiterten Merkmale des Abhängigkeitsinjektionsbehälters von ThinkPhp? Was sind die erweiterten Merkmale des Abhängigkeitsinjektionsbehälters von ThinkPhp? Mar 18, 2025 pm 04:50 PM

IOC -Container von ThinkPhp bietet erweiterte Funktionen wie fauler Laden, Kontextbindung und Methodeninjektion für eine effiziente Abhängigkeitsführung in PHP -Apps.character Count: 159

Wie kann ich SQL -Injektionsanfälligkeiten in ThinkPhp verhindern? Wie kann ich SQL -Injektionsanfälligkeiten in ThinkPhp verhindern? Mar 14, 2025 pm 01:18 PM

In dem Artikel werden die Verhindern von SQL -Injektionsanfälligkeiten in ThinkPhp durch parametrisierte Abfragen verhindern, die RAW -SQL, Verwendung von ORM, regelmäßige Updates und ordnungsgemäße Fehlerbehandlung, vermeiden. Es deckt auch Best Practices für die Sicherung von Datenbankabfragen und Validaten ab

Wie erstelle ich ein verteiltes Task -Warteschlangensystem mit ThinkPhp und Rabbitmq? Wie erstelle ich ein verteiltes Task -Warteschlangensystem mit ThinkPhp und Rabbitmq? Mar 18, 2025 pm 04:45 PM

Der Artikel beschreibt das Erstellen eines verteilten Task -Warteschlangensystems mit ThinkPhp und RabbitMQ, wobei sich die Installation, Konfiguration, Aufgabenverwaltung und Skalierbarkeit konzentriert. Zu den wichtigsten Problemen gehören die Gewährleistung einer hohen Verfügbarkeit, die Vermeidung häufiger Fallstricke wie Unmensch

Was sind die Hauptmerkmale des integrierten Test-Frameworks von ThinkPhp? Was sind die Hauptmerkmale des integrierten Test-Frameworks von ThinkPhp? Mar 18, 2025 pm 05:01 PM

In dem Artikel wird das integrierte Test-Framework von ThinkPhP erläutert, wobei die wichtigsten Funktionen wie Einheit und Integrationstests hervorgehoben werden und wie die Anwendungszuverlässigkeit durch frühzeitige Fehlererkennung und verbesserte Codequalität verbessert wird.

Was sind die wichtigsten Unterschiede zwischen ThinkPhp 5 und ThinkPhp 6 und wann zu verwenden? Was sind die wichtigsten Unterschiede zwischen ThinkPhp 5 und ThinkPhp 6 und wann zu verwenden? Mar 14, 2025 pm 01:30 PM

In dem Artikel werden wichtige Unterschiede zwischen ThinkPhp 5 und 6 erörtert und sich auf Architektur, Merkmale, Leistung und Eignung für Legacy -Upgrades konzentrieren. ThinkPhp 5 wird für traditionelle Projekte und Legacy -Systeme empfohlen, während ThinkPhp 6 zu neuem PR passt

Was sind die besten Möglichkeiten, Dateien -Uploads und Cloud -Speicher in ThinkPhp zu verarbeiten? Was sind die besten Möglichkeiten, Dateien -Uploads und Cloud -Speicher in ThinkPhp zu verarbeiten? Mar 17, 2025 pm 02:28 PM

In dem Artikel werden Best Practices für das Hochladen von Dateien und die Integration von Cloud -Speicher in ThinkPhP erörtert, wobei sich die Sicherheit, Effizienz und Skalierbarkeit konzentriert.

See all articles