目前我的项目中有一个全局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'
[...]
答案 0 :(得分:2)
查看How to expose a Semantic Configuration for a Bundle
的官方文档一些参考:
创建捆绑包时,您有两种选择来处理配置:
正常服务配置(简单): 您可以在捆绑包中的配置文件(例如services.yml)中指定服务,然后从主应用程序配置中导入它。这非常简单,快速且完全有效。如果您使用参数,那么您仍然可以灵活地从应用程序配置中自定义捆绑包。有关详细信息,请参阅“使用导入导入配置”。
- 醇>
公开语义配置(高级): 这是使用核心软件包完成配置的方式(如上所述)。基本思想是,让用户只配置几个专门创建的选项,而不是让用户覆盖单个参数。作为bundle开发人员,然后解析该配置并在“Extension”类中加载服务。使用此方法,您无需从主应用程序配置中导入任何配置资源:Extension类可以处理所有这些。
所以主要的想法是在每个bundle中创建Extension
类并加载特定于bundle的配置文件。
您还可以查看核心symfony或第三方软件包以获取一些示例。