Heim  >  Artikel  >  PHP-Framework  >  ThinkPHP6-Ereignisse und mehrere Anwendungen

ThinkPHP6-Ereignisse und mehrere Anwendungen

Guanhui
Guanhuinach vorne
2020-05-08 10:14:503891Durchsuche

Ereignisse

1. Ereignisse ähneln in gewisser Weise der Middleware, außer dass Ereignisse detailliertere Geschäftsszenarien definieren können. Event-Klasse, Event-Listening-Klasse, Event-Abonnement-Klasse; Sie können die Listener-Klasse verwenden, um einen Listener zu entwerfen und ihn über die Befehlszeile zu erstellen. In app/event.php ist die Konfigurationsmethode wie folgt konfiguriert:

public function __construct()
{
//注册监听器
Event::listen('TestListen', function ($param) {
echo '我是监听器,我被触发了!'.$param;
});
}
public function info()
{
echo '登录前准备!';
Event::trigger('TestListen', 'ok'); //触发监听器
event('TestListen'); //助手函数触发
}

6 . Wenn die Überwachungsklasse ausgelöst wird, führt sie automatisch die Methode handle() aus, um die Überwachungsfunktion zu implementieren.

php think make:listener TestListen

7 Ereignisse, die automatisch ausgelöst werden, solange die Bedingungen erfüllt sind;

Ereignisbeschreibungsparameter AppInit-Anwendungsinitialisierungs-Tag-Bit Keines HttpRun-Anwendungs-Start-Tag-Bit Keines HttpEnd-Anwendungs-End-Tag-Bit Aktuell Antwortobjektinstanz LogWrite Protokollschreibmethode Tag-Bit Aktuell geschriebene Protokollinformationen RouteLoaded Routenladen abgeschlossen Keine

8 Die Ereignis-Abhörklasse kann mehrere Abhörklassen gleichzeitig überwachen, solange sie an einen Bezeichner gebunden ist;

public function info()
{
echo '登录前准备!';
Event::listen('TestListen', TestListen::class); //这句可以定义到配置文件
Event::trigger('TestListen');
}

Für diejenigen, die mehrere Überwachungen benötigen, ist der Hörkurs nicht flexibel genug. Sie können den Abonnementkurs verwenden Die Abonnementklasse besteht darin, das Listening-Ereignis als interne Methode zum Implementieren von

'listen' => [
'TestListen' => [\app\listener\TestListen::class]
],
ThinkPHP6-Ereignisse und mehrere Anwendungen11 zu verwenden. Dann hören die beiden Methoden jeweils zwei Ereignismethoden auf. Rufen Sie einfach den Methodennamen direkt auf Das System bietet viele präzise Lösungen.

public function handle($event)
{
echo '我是监听类!'.$event;
}

Mehrfachanwendungsmodus

1

2. Erstellen Sie nach der Installation zwei Anwendungsverzeichnisordner, index und admin.

3. Fügen Sie einfach den entsprechenden Namespace hinzu Verzeichnisordner, index und admin, zur Ansicht und verschieben Sie sie in die entsprechenden Ordner

5. Die Standardanwendung ist index, ändern Sie sie einfach in app.php

kann eine Anwendungszuordnung durchführen, z. B. das Zuordnen des Admin-Verzeichnisses zum Nachdenken und Verlassen des Admin-Verzeichnisses;

'TestListen' => [
\app\listener\TestListen::class,
\app\listener\TestOne::class,
\app\listener\TestTwo::class
]

8. Routenänderung: Die Route muss separat im Anwendungsverzeichnis eingerichtet werden und die interne Codierung muss nicht geändert werden.

Empfohlenes Tutorial: „ThinkPHP Tutorial "

Das obige ist der detaillierte Inhalt vonThinkPHP6-Ereignisse und mehrere Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:zhihu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen