1

目前,我的项目中有一个全局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'
    [...]
4

1 回答 1

2

查看官方文档以了解如何为 Bundle 公开语义配置

一些参考:

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

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

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

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

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

于 2013-03-25T12:50:05.650 回答