我想在執行我的項目中的所有動作之前執行代碼(計算一個重要的全局變量)。 如何在我的控制器中設置預執行功能?在控制器動作之前執行代碼
22
A
回答
23
在Symfony2中沒有預處理方法。您必須爲此使用event listeners。
10
15
可能使用監聽器是實現「後控制器初始化任務」更優雅的方式,但有更簡單的方法來做到這一點:
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...
}
將此代碼插入到控制器中,或者,如果您願意,甚至可以將其插入到控制器的某個基本父抽象中。
因爲容器會在每個控制器初始化時設置,我們可以覆蓋setContainer
方法來執行一些容器設置後的任務。
相關問題
- 1. 控制器和動作不執行控制器代碼
- 2. web2py:如何在調用控制器之前執行代碼?
- 3. 在偵聽器之前執行Symfony控制器動作
- 4. Symfony2在控制器動作之前執行服務
- 5. 在控制器之前執行視圖?
- 6. 在執行Jenkinsfile之前執行代碼
- 7. 使用[AllowAnonymous]在控制器中運行MVC之前的代碼執行
- 8. 在Sails控制器中執行操作之前
- 9. 選項卡欄控制器:在切換視圖之前執行代碼
- 10. UINavigationController - 在彈出視圖控制器之前運行代碼
- 11. 在控制器中的任何代碼在rails之前執行的應用程序控制器中的before_filter?
- 12. 在啓動Firebug控制檯之前自動執行javascript行
- 13. Laravel - 在執行其他任何操作之前執行的控制器
- 14. 在解析之前執行代碼
- 15. 在main()之前執行代碼()
- 16. 代碼在API響應之前執行
- 17. 在代碼之前執行的Response.Redirect
- 18. 在加載UI之前執行代碼
- 19. 在ViewController之前執行NSApplicationDelegate代碼viewDidLoad
- 20. 如何在hashchange之前執行代碼?
- 21. 在操作之前或之後執行ASP.Net MVC控制器屬性嗎?
- 22. 在執行代碼之前執行<%= %>代碼執行ASP.NET自定義控件填充
- 23. 在執行下一行代碼之前是否會執行一行代碼?
- 24. 如何在ModalPopUp控件擴展代碼執行之前執行數據綁定
- 25. 執行他人的控制器動作
- 26. Ajax ModalPopUp擴展在執行之前的代碼之前彈出的代碼
- 27. PHP在前代函數完成之前繼續執行代碼
- 28. 在執行jQuery動作之前暫停
- 29. 過濾器在渲染之前但在控制器之後執行?
- 30. 控制器正在執行之前,factroy給結果
該死的,好吧。謝謝;) – bux
我需要補充的是,雖然本身沒有預處理方法,但事件'kernel.controller'可能是您想要的。 – PhoneixS