【问题标题】:How to use a different console configuration in Symfony如何在 Symfony 中使用不同的控制台配置
【发布时间】:2013-09-13 23:36:15
【问题描述】:

我遵循how to expose a semantic configuration for a bundle 上的指南并在我的app/config.yml 中配置它(通过parameters.yml)。

我的包还包含一些控制台命令。现在这个命令要么使用 dev 要么 prod 配置,这很好。

但是我怎样才能让控制台命令使用一个额外的配置文件来设置一些与config.yml不同的东西呢?

例如

#app/config.yml
imports:
  - { resource: parameters.yml }

foo:
  view_mode: %view_mode%

#app/parameters.yml
parameters:
  view_mode: 1

我怎样才能做到,例如使用不同的参数.yml

#app/parameters_console.yml
parameters:
  view_mode: 2

当通过控制台调用时?新环境不是我想要的。

【问题讨论】:

  • 这只适用于不同的环境。但是你可以为你的命令提供一个参数,它会覆盖view_mode

标签: symfony


【解决方案1】:

我认为你需要创建一个custom environement

您只需在您的app/config 文件夹中创建一个config_console.yml 并覆盖您需要的配置。

imports:
    - { resource: config_dev.yml }

foo:
    view_mode: 2

然后在你的应用程序中,运行

php app/console --env=console

这将使用默认配置 devfoo.view_mode = 2 运行您的应用程序
您可能需要注意,它将创建一个名为 console 的新缓存文件夹

【讨论】:

  • 感谢您的回答,经过更多研究,这似乎是唯一可能的方法,尽管并不完全令人满意(因为一些受影响的命令会检查它们是否处于 dev 模式,这意味着我必须重构它们)。
  • @acme 也许你应该检查你是否处于debug模式而不是$kernel->isDebug()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多