Ich möchte Code vor allen Aktionen in meinem Projekt ausführen (um eine wichtige globale Variable zu berechnen). Wie lege ich eine Pre-Action-Funktion in meinen Controllern fest?Code vor der Aktion des Controllers ausführen
22
A
Antwort
23
Es gibt keine Pre-Aktion Methode in Symfony2. Sie müssen event listeners für diesen Zweck verwenden.
10
Sie sollen vor allem diese Dokumentation Seite lesen: http://symfony.com/doc/current/cookbook/event_dispatcher/before_after_filters.html
15
Wahrscheinlich ist Zuhörer mit eleganter Art und Weise zu implementieren „nachdem Controller initialisiert Aufgaben“, aber es gibt einfachere Art und Weise, es zu tun:
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Override method to call #containerInitialized method when container set.
* {@inheritdoc}
*/
public function setContainer(ContainerInterface $container = null)
{
parent::setContainer($container);
$this->containerInitialized();
}
/**
* Perform some operations after controller initialized and container set.
*/
private function containerInitialized()
{
// some tasks to do...
}
Fügen Sie diesen Code in Ihren Controller ein, oder Sie können ihn sogar in eine Basispartition Ihrer Controller einfügen.
Da der Container bei Initialisierung auf jeden Controller gesetzt wird, können wir die Methode setContainer
überschreiben, um einige Aufgaben nach dem Container-Set auszuführen.
Verwandte Themen
- 1. Code vor/nach jeder Controller-Aktion ausführen
- 2. Wie kann ich Code vor (EVERY) Web API Aktion ausführen?
- 3. Code ausführen vor und nach der Spezifikation
- 4. Kann edit_order_path mit der "Modify" -Aktion (nicht der "Edit" -Aktion) des Orders-Controllers verbunden werden?
- 5. Die Aktion des Controllers ist mehrdeutig zwischen der Aktion der Basisklasse mit demselben Namen.
- 6. Wie wird die Aktion des Controllers außerhalb des Controllers im Zend Framework aufgerufen?
- 7. Ausführen von Code immer vor dem Ende des Perl-Skripts
- 8. Aktion ohne Weiterleitung ausführen
- 9. Grails 2.4.2 - Lokale Klasse in Aktion des Controllers
- 10. Wie erhalten Sie den Namen der Aktion und des Controllers in der ASP.Net Core MVC App?
- 11. Code vor jedem django Verwaltungsbefehl ausführen
- 12. Grails - wie Code vor jedem Speichern ausführen?
- 13. Ausführen der Aktion nach der Fragmenttransaktionsanimation
- 14. Jquery: neues FadeToggle, kann ich Code auf der 2. Aktion des Toggle ausführen?
- 15. Wie die Anker der URL im Spiel des Controllers
- 16. aktuelle_seite? innerhalb des Controllers
- 17. vor der Aktion in Laravel 5.1
- 18. generateUrl außerhalb des Controllers
- 19. Erstellen eines Controllers/einer Aktion href
- 20. Verwendung der Methode bindData außerhalb des Controllers
- 21. Funktion innerhalb des Controllers inAngularjs
- 22. Funktion innerhalb des AngularJS Controllers
- 23. Validieren von ASP.NET MVC 3 des Controllers params Aktion bei der Verwendung von dynamischen Expressions API
- 24. Rails überspringen vor der Aktion nicht
- 25. Authlogic run Validierungen bei der Anmeldung vor dem Erstellen Aktion
- 26. .htaccess - PHP-Datei vor der Authentifizierung ausführen
- 27. AngularJS Aktion ausführen nach $ scope.emit
- 28. Ermitteln des Ergebnistyps in OnException des Controllers
- 29. Java JTabbedPane - Aktion unmittelbar vor dem Ändern des ausgewählten Tabs
- 30. Benutzerdaten vor jeder Aktion überprüfen
Verdammt, okay. Danke;) – bux
Ich muss hinzufügen, dass, obwohl es keine Pre-Action-Methode per se, das Ereignis 'kernel.controller' ist wahrscheinlich, was Sie wollen. – PhoneixS