Die CakePHP 3.0-Dokumentation enthält ein Beispiel für die Erstellung eines Ereignisses anhand eines Modells als Beispiel. Ich habe es ausprobiert und versucht und es übersetzt nicht für mich. Hat jemand ein CakePHP 3.x-Beispiel für die Verwendung eines benutzerdefinierten Ereignisses, bei dem ein Controller eine Variable im Controller setzt, die das Ereignis auslöst?CakePHP 3 Beispiel zur Implementierung eines Controller-Ereignisses
0
A
Antwort
2
Nehmen wir an, wir haben ein Admin-Dashboard, mit dem Sie Code in die Verwendung von Ereignissen einfügen können, damit Sie Ihre Plugins und nicht die Code-Dashboard-Funktionalität für bestimmte Plugins im Kern-Admin-Dashboard entkoppeln können.
Erstellen Sie die Auslösung des Ereignisses.
In APP/Controller/DashboardController
public function index()
{
// Once this gets to the function triggered by this event, the "$this" in the parameters will be $event->subject(). Mentioned again below.
$event = new Event('Controller.Dashboard.beforeDashboardIndex', $this)
$this->eventManager()->dispatch($event);
// your other index() code...
}
Jetzt ein Listener erstellen, die für wartet das Ereignis
Ein guter Ort dafür könnte sein, Plugin ausgelöst werden /src/Controller/Event/DashboardListener.php
namespace Plugin\Controller\Event;
use Cake\Event\EventListenerInterface;
class DashboardListener implements EventListenerInterface {
public function implementedEvents() {
return array(
'Controller.Dashboard.beforeDashboardIndex' => 'myCustomMethod',
);
}
public function myCustomMethod($event) {
// $event->subject() = DashboardController();
$event->subject()->set('dashboardAddon', 'me me me');
}
}
Endlich den Hörer einschalten. (Ex. Am unteren Rand des APP/config/bootstrap.php)
Hinweis kann diese Zuhörer Initialisierung überall sein, dass Brände vor DashboardController :: Index
// Attach event listeners
use Cake\Event\EventManager;
use PluginName\Controller\Event\DashboardListener;
$myPluginListener = new DashboardListener();
EventManager::instance()->on($myPluginListener);
Verwandte Themen
- 1. Zurück zur aufgerufenen Seite in CakePHP 3
- 2. Beispiel IModelBinderProvider-Implementierung für ModelBinder-Konstruktorinjektion in MVC 3
- 3. Algorithmus zur Implementierung eines Lasso-Auswahlwerkzeugs?
- 4. Linphone Android Implementierung Beispiel
- 5. Implementierung Tag-Clouds mit CakePHP
- 6. Core.php in CakePHP 3
- 7. Mock auth cakephp 3
- 8. CakePHP 3 Eingabedatendateientwurf
- 9. cakephp 3 Übersetzung Ausgabe
- 10. CakePHP 3: Cookies Tutorial
- 11. CakePHP 3: Formular validieren
- 12. CakePHP 3 und SplTempFileObject
- 13. in cakephp 3
- 14. CakePHP 3 Schritt Registrierung
- 15. CakePHP 3 - Vergleichen Passwörter
- 16. CakePHP 3: Lokalisierung Routing
- 17. CakePHP 3 Vollkalender Setup
- 18. Popup-Login CakePHP 3
- 19. CakePHP 3 E-Mail Validierung
- 20. Vorlage in CakePHP 3 wiederverwenden?
- 21. CakePHP 3 Raw SQL-Abfrage
- 22. CakePHP 3: Multi-Level-Verein
- 23. CakePHP 3 Benutzerdefinierte Abfrage Fehler
- 24. 'formnovalidate' funktioniert nicht CakePHP 3
- 25. Autorisierung und ACL in CakePHP 3
- 26. Javascript Sandbox Pattern Beispiel Implementierung
- 27. CakePHP 3 NICHT in Frage
- 28. Verband Hilfe in CakePHP- Flight Search Beispiel
- 29. CakePHP Problem bei der Implementierung von Zugriffskontrolllisten
- 30. Glassfish 3 EJB3 rmi Beispiel