2015-07-10 31 views
4

我目前正在構建一個相當大的Symfony 2應用程序,其中包含許多不斷增加的包,我正在努力保持計數。基於Symfony2軟件包的應用程序配置合併到全局配置中

我試着保留所有特定於系統每個模塊的捆綁包,這爲我提供了一個很好的易於管理的結構。有什麼不好的是我的app/config/config.yml很快就失去了控制。瞭解導入可以在這個文件中完成,這對我有所幫助,但是我想移動一系列特定於每個包的配置,這應該有助於保持這些包在我們的其他應用程序中可重用。

下面是我想要轉移到單個捆綁包的一些示例。

1)依賴注入

我們使用JMSDiExtraBundle所有內部包內,我們發現它使得開發一點點更快,更容易管理。

# Annotations/Config 
jms_di_extra: 
    locations: 
    bundles: 
     - AppBundle 
     - BlogBundle 
     - ContentBundle 
     - StoreBundle 
     - UserBundle 

我想這個塊將被移動到每個個人捆綁config.yml或更好的,這將在每捆DependencyInjection/AppBundleExtension.php啓用。

2)路由

使用路由配置,但每捆仍然需要包括內app/config/routing.yml留給我們一個相當大的難以管理的文件。

一些例子

app: 
    resource: "@AppBundle/Controller" 
    type:  annotation 

blog: 
    resource: "@BlogBundle/Controller" 
    type:  annotation 

content: 
    resource: "@ContentBundle/Controller" 
    type:  annotation 

oneup_uploader: 
    resource: . 
    type:  uploader 

3)OneUp上傳

這是我最大的刺骨點,這樣的配置是目前長我們用20+束之間達到500線。以下是從導入的app/config/uploader.yml的一些示例。如果我能以某種方式將這些內容加入到每個捆綁配置中,我會非常高興!

# Uploader 
oneup_uploader: 
    mappings: 
    bundle_name_reference1: 
     frontend: blueimp 
     storage: 
     type: gaufrette 
     filesystem: gaufrette.local_filesystem 
    bundle_name_reference2: 
     frontend: blueimp 
     storage: 
     type: gaufrette 
     filesystem: gaufrette.local_filesystem 

我的想法是通過讓所有這些CONFIGS到每個單獨的包,我可以啓用/由剛剛更新AppKernel.php真正輕鬆地禁用它們。我假設所有這一切都是可能的,因爲Symfony非常靈活,當涉及到這些較低級別的變更時,我有點失落。

回答

0

你可以只是簡單地添加

oneup_uploader: 
    #... 

src/Vendor/WhateverBundle/Resources/config/services.yml

OR

有關於如何去耦應用程序/配置包菜譜項: How to Load Service Configuration inside a Bundle

我認爲理想的,低耦合的解決方案應該是crea一束延伸另一束(例如, MyOneUpUploaderBundle)並在那裏使用cookbook方法。

相關問題