捆绑中的symfony2资产管理

时间:2013-03-25 10:18:34

标签: symfony bundle assets

目前我的项目中有一个全局assets.yml文件,我在其中定义资产,并在整个应用程序中使用它们。我有几个捆绑包,它们的所有资产都在这个全局assets.yml中定义,但这一点并不清楚,也不好。

我想为每个捆绑包定义一个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'
    [...]

1 个答案:

答案 0 :(得分:2)

查看How to expose a Semantic Configuration for a Bundle

的官方文档

一些参考:

  

创建捆绑包时,您有两种选择来处理配置:

     
      
  1. 正常服务配置(简单):   您可以在捆绑包中的配置文件(例如services.yml)中指定服务,然后从主应用程序配置中导入它。这非常简单,快速且完全有效。如果您使用参数,那么您仍然可以灵活地从应用程序配置中自定义捆绑包。有关详细信息,请参阅“使用导入导入配置”。

  2.   
  3. 公开语义配置(高级):   这是使用核心软件包完成配置的方式(如上所述)。基本思想是,让用户只配置几个专门创建的选项,而不是让用户覆盖单个参数。作为bundle开发人员,然后解析该配置并在“Extension”类中加载服务。使用此方法,您无需从主应用程序配置中导入任何配置资源:Extension类可以处理所有这些。

  4.   

所以主要的想法是在每个bundle中创建Extension类并加载特定于bundle的配置文件。

您还可以查看核心symfony或第三方软件包以获取一些示例。