你可以把它放在你的軟件包的控制器目錄中,例如src/YourNamespace/YourBundleName/Controller/ControllerExtension.php
。 確保您在該文件中提供了相應的命名空間:
namespace YourNamespace\YourBundleName\Controller;
class ControllerExtension extends Symfony\Bundle\FrameworkBundle\Controller\Controller
{
...
要使用它,您既可以在src/YourNamespace/YourBundlename/Resources/config/routing.yml
或
它的路由擴展它:
namespace YourNamespace\YourBundleName\Controller;
class OtherController extends ControllerExtension
{
...
如果你實際想要做的是重寫另一個包的控制器,請參閱描述overriding controllers的食譜。
編輯:
據我所知,有沒有辦法自動使該控制器在某種程度上生效。如上所述,您可以讓每個控制器擴展它。
您可能能夠create an event listener並使用response event以某種方式更改響應,如果格式爲json。但是,我不確定你將如何從事件監聽器訪問視圖數據。
嗨,謝謝,但我仍然努力讓這個工作。基本上我只想覆蓋項目中的'每一個'控制器。它只會執行一個小動作。就像我已經在每個請求上運行的services.yml中激活了一個請求偵聽器,我希望它可以在每個請求上運行,但是我無法運行它。 – user2143356 2013-04-06 01:17:38
您可能想更新您的問題,更具體地說......您想要在每個請求上運行什麼。可能比控制器類更容易。 – 2013-04-06 01:28:30
這樣的事情:http://justpaste.it/2caz - 我只是不能讓代碼運行(挑選課程) – user2143356 2013-04-06 02:20:11