如何导入配置文件/资源

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 3.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

如何导入配置文件/资源

提示

在本节中,被称为服务配置文件资源。这是为了强调这一事实,而大多数配置资源文件(例如YAML、XML、PHP), Symfony非常灵活,可以加载配置从任何地方(例如,一个数据库,甚至通过外部web服务)。欧宝娱乐app下载地址

服务容器使用单个配置资源(应用程序/配置/ config.yml默认情况下)。所有其他服务配置(包括核心Symfony和第三方包配置)必须从内部进口这个文件以一种方式或另一种方式。欧宝娱乐app下载地址这给你绝对的灵活性在您的应用程序的服务。

外部服务配置可以在两种不同的方式进口。第一种方法,常用的导入其他资源,是通过进口指令。第二种方法,使用依赖注入扩展,使用第三方包加载配置。往下读,了解两种方法。

导入配置与进口

到目前为止,你放置app.mailer服务容器中直接定义的服务配置文件(如。应用程序/配置/ services.yml)。如果您的应用程序有很多服务,这个文件变得巨大,难以维护。为了避免这种情况,你可以把你的服务配置成多个文件:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8
# app / config /服务/ mailer.yml参数:app.mailer.transport:sendmail服务:app.mailer:类:AppBundle \梅勒参数:[' % app.mailer.transport % ')

定义本身并没有改变,只是它的位置。使服务容器加载资源文件中的定义,使用进口在任何已经加载的资源(如关键。应用程序/配置/ services.yml应用程序/配置/ config.yml):

  • YAML
  • XML
  • PHP
1 2 3
# app / config / services.yml进口:- - - - - -{资源:服务/ mailer.yml}

资源位置、文件的当前文件的相对路径或绝对路径。

请注意

由于参数的方式解决,你不能使用它们来构建路径动态进口。这意味着像以下不工作:

  • YAML
  • XML
  • PHP
1 2 3
# app / config / config.yml进口:- - - - - -{资源:' % kernel.root_dir % / parameters.yml '}

通过容器扩展导入配置

第三方包容器配置,包括Symfony核心服务,通常加载使用另一种方法更加灵活和易于配置的应用程序。欧宝娱乐app下载地址

在内部,每个包定义其服务到目前为止你看过。然而,这些文件不是导入使用进口指令。这些包使用依赖注入的扩展加载文件。扩展还允许包提供配置动态加载一些服务。

把FrameworkBundle -核心Symfony框架包为例。欧宝娱乐app下载地址存在下面的代码在应用程序中配置调用FrameworkBundle内的服务容器扩展:

  • YAML
  • XML
  • PHP
1 2 3 4 5
# app / config / config.yml框架:秘密:xxxxxxxxxx形式:真正的#……

资源解析时,寻找一个扩展,可以处理容器框架指令。扩展的问题,住在FrameworkBundle,调用加载FrameworkBundle和服务配置。

下的设置框架指令(如。形式:真)表明,扩展加载所有服务相关的表单组件。如果形式是残疾人,这些服务不会被加载,形成整合将不可用。

当安装或配置一个包,看到包的文档服务包应该如何安装和配置。欧宝体育电话选择的核心包里可以找到参考指南

另请参阅

如果你想在自己的共享使用依赖注入扩展包,并提供用户友好的配置,看一看如何加载服务配置在一个包吗篇文章。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。