2013-03-25 104 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或第三方软件包。