2013-03-25 105 views
1

目前我在我的項目中有一個全球assets.yml文件,我定義了我的資產,並在整個應用程序中使用它們。我有幾個捆綁軟件,其全部資產都在這個全球性的assets.yml中定義,這個不清楚也不好。symfony2資產管理捆綁

我想定義一個assets.yml以及每個捆綁包的相應資產。他們會處在捆綁配置中。

我不知道如何讓它們可以訪問整個應用程序。我應該以某種方式使用import,還是使用框架加載文件(該名稱遵循某種約定)?我會欣賞提示,我怎麼能實現上述。


編輯:我要解釋一點......在我config.yml我導入assets.yml作爲一種資源:

imports: 
    - { resource: assets.yml } 

和assets.yml如下所示:

assetic: 

    use_controller: false 

    filters: 
    cssrewrite: ~ 
    yui_js: 
     jar: %kernel.root_dir%/Resources/java/yui-compressor.jar 
     #apply_to: "\.js$" 
    yui_css: 
     jar: %kernel.root_dir%/Resources/java/yui-compressor.jar 
     #apply_to: "\.css$" 

    assets: 
    jquery: 
     inputs: 
     - '%kernel.root_dir%/Resources/public/js/jquery-1.8.0.js' 
     - '%kernel.root_dir%/Resources/public/js/jquery.sizes.js' 
     - '%kernel.root_dir%/Resources/public/js/jquery.form.js' 
     - '%kernel.root_dir%/Resources/public/js/jquery.validate.js' 
     - '%kernel.root_dir%/Resources/public/js/jquery.metadata.js' 
    [...] 

回答

2

檢查How to expose a Semantic Configuration for a Bundle

一些裁判的官方文檔:

當你創建一個包,你如何處理配置兩種選擇:

  1. 正常服務配置(易): 您可以在配置文件中指定的服務(例如services.yml),它位於你的包中,然後從主應用程序配置中導入它。這非常簡單,快速且完全有效。如果您使用參數,那麼您仍然可以靈活地從應用程序配置中定製您的軟件包。有關更多詳細信息,請參閱「使用導入導入配置」。

  2. 暴露語義配置(高級): 這是配置與芯束進行(如上文所述)的方式。基本思想是,用戶不必讓用戶覆蓋單個參數,而是讓用戶配置一些特別創建的選項。作爲軟件包開發人員,您隨後解析該配置並在「擴展」類中加載服務。使用這種方法,您不需要從主應用程序配置中導入任何配置資源:Extension類可以處理所有這些。

所以其主要思想是在每捆和負載捆綁特定的配置文件來創建Extension類。

對於一些示例,您還可以檢查覈心symfony或第三方軟件包。