doulao2128
2016-04-09 15:00
浏览 57
已采纳

更改Symfony2项目的默认配置文件

Context

I have a simple Symfony2 project (only command line commands). This project includes an app/config.yml file, containing information used for dependency injection creation.

For example, app/config.yml contains:

github:
    token: abcdefgh

And src/Foo/Resources/config/github.yml (services files) contains:

services:
    github.client:
        class: Github\Client
        calls:
            - ['authenticate', [%github.token%, null, 'http_token']]

The file app/config.yml is loaded by Application::__construct() function.

When I run app/console mycommand, it uses the defined token.

Needs

I need to be able to run my commands using different configurations. For now, I replace manually the app/config.yml file, but it's crappy.

To do this, I thought about 2 possible solutions:

  • Be able to specify another app/config.yml file when I run app/console mycommand --f=app/config2.yml.
  • Have another configuration file for specific command usage, and use it with app/console mycommand --f=myconfig.yml. The thing is the dependency injection can not work or be updated after the application is run.

I don't know how to do one of this solution (or a third one, no matters). If it's a common behavior, can you point me some documentation or example to do something like this?

图片转代码服务由CSDN问答提供 功能建议

上下文

我有一个简单的Symfony2项目(只有命令行命令) 。 该项目包含一个 app / config.yml 文件,其中包含用于创建依赖项注入的信息。

例如, app / config.yml contains:

  github:
 token:abcdefgh 
   
 
 

src / Foo / Resources / config / github.yml (服务文件)包含:

  services:
 github.client:
 class:Github \ Client 
调用:  
  -  ['authenticate',[%github.token%,null,'http_token']] 
   
 
 

文件 app / config.yml < / code>由 Application :: __ construct()函数加载。

当我运行 app / console mycommand 时,它使用 定义的令牌。

需要

我需要能够使用不同的配置运行我的命令。 现在,我手动替换 app / config.yml 文件,但它很糟糕。

为此,我考虑了两种可能的解决方案:

  • 能够指定另一个 app / confi g.yml 文件,当我运行 app / console mycommand --f = app / config2.yml
  • 有另一个配置文件用于特定的命令用法, 并与 app / console mycommand --f = myconfig.yml 一起使用。 问题是依赖注入在应用程序运行后无法工作或更新。

    我不知道如何做这个解决方案之一(或者 第三,没有问题)。 如果这是一种常见行为,你能指点一些文档或示例来做这样的事吗?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • dongyou1926 2016-04-09 15:19
    已采纳

    It is totally possible by using different environements, check out the doc : http://symfony.com/doc/current/cookbook/configuration/environments.html

    Typically you will specify the environement using --env=myenv.

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题