更改 Symfony2 项目的默认配置文件
Change default configuration file of Symfony2 project
上下文
我有一个简单的 Symfony2 项目(只有命令行命令)。该项目包含一个 app/config.yml
文件,其中包含用于创建依赖项注入的信息。
例如,app/config.yml
包含:
github:
token: abcdefgh
并且src/Foo/Resources/config/github.yml
(服务文件)包含:
services:
github.client:
class: Github\Client
calls:
- ['authenticate', [%github.token%, null, 'http_token']]
文件 app/config.yml
由 Application::__construct()
函数加载。
当我运行app/console mycommand
时,它使用定义的令牌。
需要
我需要能够 运行 我的命令使用不同的配置。
现在,我手动替换了 app/config.yml
文件,但它很糟糕。
为此,我考虑了 2 种可能的解决方案:
- 当我运行
app/console mycommand --f=app/config2.yml
时可以指定另一个app/config.yml
文件。
- 有另一个配置文件用于特定的命令用法,并与
app/console mycommand --f=myconfig.yml
一起使用。问题是依赖注入在应用程序 运行. 后无法工作或更新
我不知道如何执行此解决方案中的一个(或第三个,没关系)。如果这是一个常见的行为,你能给我一些文档或例子来做这样的事情吗?
完全可以通过使用不同的环境,查看文档:
http://symfony.com/doc/current/cookbook/configuration/environments.html
通常您将使用 --venv=myenv 指定环境。
上下文
我有一个简单的 Symfony2 项目(只有命令行命令)。该项目包含一个 app/config.yml
文件,其中包含用于创建依赖项注入的信息。
例如,app/config.yml
包含:
github:
token: abcdefgh
并且src/Foo/Resources/config/github.yml
(服务文件)包含:
services:
github.client:
class: Github\Client
calls:
- ['authenticate', [%github.token%, null, 'http_token']]
文件 app/config.yml
由 Application::__construct()
函数加载。
当我运行app/console mycommand
时,它使用定义的令牌。
需要
我需要能够 运行 我的命令使用不同的配置。
现在,我手动替换了 app/config.yml
文件,但它很糟糕。
为此,我考虑了 2 种可能的解决方案:
- 当我运行
app/console mycommand --f=app/config2.yml
时可以指定另一个app/config.yml
文件。 - 有另一个配置文件用于特定的命令用法,并与
app/console mycommand --f=myconfig.yml
一起使用。问题是依赖注入在应用程序 运行. 后无法工作或更新
我不知道如何执行此解决方案中的一个(或第三个,没关系)。如果这是一个常见的行为,你能给我一些文档或例子来做这样的事情吗?
完全可以通过使用不同的环境,查看文档: http://symfony.com/doc/current/cookbook/configuration/environments.html
通常您将使用 --venv=myenv 指定环境。