2015-05-29 45 views
2

引導Symfony2內核後,如何執行一個包中的某些代碼?在Symfony內核初始化上運行代碼

  • 代碼必須在處理請求或運行控制檯命令之前運行。
  • 即使內核在其生命週期內處理多個請求,代碼也必須執行一次。
  • 代碼必須能夠訪問包配置。因此它可能不會在該過程的早期運行。

我需要這個的原因是我需要註冊一個流包裝。我需要能夠使用包配置,因爲流包裝定義是在配置中定義的。

我試過如下:

  • 實施捆綁類的構造函數。 (這是不行的,並非所有的包都在這一點上初始化)
  • kernel.requestconsole.command創建事件偵聽器(這將導致多次執行代碼時的內核處理其生命週期內的多個請求。)
+2

這個問題有點短暫的信息。你可以分享你的嘗試,以及你遇到了什麼問題? –

+0

@JayBlanchard:我真的不知道我能告訴你更多。我解釋了我想達到的目的以及爲什麼。我給了我試過的兩個選項,包括我遇到的這些選項遇到的問題。 – Xatoo

回答

6

您可以覆蓋您的包的boot方法。

class MyBundle extends Bundle 
{ 
    public function boot() 
    { 

    } 
} 
2

您可以註冊一個服務作爲kernel.requestconsole.command的事件監聽器。它將從控制檯和HTTP請求中被觸發。