2013-12-16 49 views
1

考慮一些情況,我有一些默認包,假設創建一些空的頁面,左邊的菜單和一些內容(如果有的話)。然後我創建一個新的包,我通常在AppKernel中打開它。現在應魔術開始:捆綁他自己(不需要添加任何選項在默認包等)掛鉤並創建他的菜單條目(如果選擇,呈現他的內容)。我應該如何做到這一點,有沒有適當的方式來做到這一點?如果我想要多個「掛鉤」,例如,在用戶配置文件編輯中添加新表單,或在其他地方添加新標籤,該怎麼辦?Symfony2包作爲插件

我正在考慮尋找一些我可以聽到的「初始化捆綁事件」,並通過它傳遞數據。但也許有更好的解決方案。我很想看到你的想法:)

回答

2

看看KernelinitializeBundles方法,它看起來不容易或打算在啓動過程中動態添加包。

但是,AppKernel.php文件處於最前沿,它是對Kernel的替代,並且可以進行自定義以向實施的registerBundles方法提供一組動態套件。

您需要確保導入的內容已正確添加到自動加載器,但避免在運行時修改分發源,儘量使其儘可能導入。

我不想詳細介紹技術細節,因爲我自己並沒有這樣做,這將需要大量的實驗。我知道Drupal 8使用Symfony2並有自己的插件系統,但我不認爲它需要捆綁作爲插件。

如果您設法解決這個問題,我懷疑它會允許應用程序和插件之間100%集成,但請注意,它也允許100%覆蓋訪問所述插件。