我目前正在構建一個相當大的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非常靈活,當涉及到這些較低級別的變更時,我有點失落。