如何设置服务容器的外部参数

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何设置服务容器的外部参数

在文章中配置Symfony(和环ob娱乐下载境),您了解了如何管理应用程序配置。有时,在项目代码之外存储某些凭据可能对应用程序有利。数据库配置就是这样一个例子。Symfony服务容器的灵活性使您可以轻松地做ob娱乐下载到这一点。

环境变量

ob娱乐下载Symfony将抓取任何前缀为的环境变量ob娱乐下载SYMFONY__并将其设置为服务容器中的参数。一些转换应用于结果参数名:

  • ob娱乐下载SYMFONY__前缀被删除;
  • 参数名称小写;
  • 双下划线替换为句点,因为在环境变量名中,句点不是有效字符。

例如,如果使用Apache,则可以使用SetEnv指令,包含以下内容虚拟主机配置:

12 3 4 5 6 7 8 9 10 11 12
< VirtualHost *: 80 >ServerNameob娱乐下载DocumentRoot“symfony_2ob娱乐下载_app / web /道路/”DirectoryIndexindex . php index . htmlSetEnvob娱乐下载SYMFONY__DATABASE__USER用户SetEnvob娱乐下载SYMFONY__DATABASE__PASSWORD秘密<目录“/ symfony_2_app /ob娱乐下载 web /道路/”>AllowOverride所有允许所有< /目录>< /虚拟主机>

对于Nginx web服务器,环境变量可以使用fastcgi_param指令。例如,在配置文件中fastcgi_params文件包括:

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
服务器server_name域。tld www.domain.tld;/var/www/project/web;位置/ {try_filesuri/ app.phpis_argsarg游戏;}位置~ ^ / app \。php (/ | $)fastcgi_passunix: / var /运行/ php5-fpm.sock;fastcgi_split_path_info^(. + \。php)(/ . *)美元包括fastcgi_params;fastcgi_paramSCRIPT_FILENAMErealpath_rootfastcgi_script_namefastcgi_paramDOCUMENT_ROOTrealpath_rootfastcgi_paramob娱乐下载SYMFONY__DATABASE__USER用户;fastcgi_paramob娱乐下载SYMFONY__DATABASE__PASSWORD秘密;内部;}#……

请注意

上面的例子是针对Apache和Nginx配置的。但是,这将适用于任何支持设置环境变量的web服务器。

此外,为了让您的控制台工作(不使用web服务器),您必须将这些导出为shell变量。在Unix系统上,可以运行以下命令:

1 2
出口ob娱乐下载SYMFONY__DATABASE__USER =用户出口ob娱乐下载SYMFONY__DATABASE__PASSWORD =秘密

现在已经声明了一个环境变量,它将显示在PHP中$ _SERVER全局变量。ob娱乐下载Symfony然后自动设置所有$ _SERVERob娱乐下载SYMFONY__作为服务容器中的参数。

您现在可以在任何需要它们的地方引用这些参数。

  • YAML
  • XML
  • PHP
1 2 3 4 5 6
原则:dbal:司机:pdo_mysqldbname:ob娱乐下载symfony_project用户:“% database.user %”密码:“% database.password %”

常量

容器还支持将PHP常量设置为参数。看到参数简介欲知详情。

其他配置

进口指令可用于拉入存储在其他地方的参数。导入PHP文件使您可以灵活地在容器中添加所需的任何内容。下面导入一个名为parameters.php

  • YAML
  • XML
  • PHP
1 2 3
# app / config / config.yml进口:-资源:parameters.php

请注意

资源文件可以是多种类型中的一种。PHP、XML、YAML、INI和闭包资源都由进口指令。

parameters.php,告诉服务容器您希望设置的参数。当重要配置采用非标准格式时,这非常有用。下面的例子包含了Symfony服务容器中的Drupal数据库配置:ob娱乐下载

1 2 3
/ / app / config / parameters.phpinclude_once' /道路/ / drupal /网站/违约/ settings.php”);容器->setParameter (“drupal.database.url”db_url);
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。