Command的Symfony 2配置

时间:2011-10-09 08:55:26

标签: command-line configuration symfony

有没有人知道我可以为控制台/命令行命令(或者实际上在应用程序的任何部分中)创建配置的最佳方式?

我想要实现的是(例如)

$ app/console myapp:sync --server=server_2
connecting to "server2.servers.com"...success!
sync completed.

其中myapp是/src/myBundle/Command/SyncCommand.php下的命令行类 并在配置(app / config / config.yml?)中:

myapp:
    server_1:
        hostname: "server1.servers.com"
        port: 22
    server_2:
        hostname: "server2.servers.com"
        port: 22

对于这个例子,同步的作用并不重要(代码已经被编写为SyncCommand.php),我只想知道要使用哪个配置文件(我假定config.yml或参数。 ini)以及如何阅读该配置(treeBuilder?或类似$ this-> getParameters('myapp')的东西?我怀疑我遗漏了某些明显的东西。

谢谢!

1 个答案:

答案 0 :(得分:7)

在命令中,如果扩展ContainerAwareCommand类,则可以使用getContainer()方法访问容器。

您可以在服务文件的参数部分中定义配置:

parameters:
    server_1:
        hostname: "server1.servers.com"
        port: 22
    server_2:
        hostname: "server2.servers.com"
        port: 22

然后您应该能够使用容器访问它们(就像another question中所述):

$this->getContainer()->getParameter('server_1');