2011-10-09 49 views
1

的Symfony 2配置有誰知道最好的方式,我可以創建一個控制檯/命令行命令的配置(在應用程序的任何部分或甚?)爲命令

我想達成什麼是這個(例如)

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

在哪裏的myapp是/src/myBundle/Command/SyncCommand.php 下並在配置命令行類這種(APP /配置/ config.yml):

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

對於這個例子,同步所做的並不重要(代碼已經寫成SyncCommand.php),我只是想知道要在哪個配置文件中使用(我認爲config.yml或parameters.ini )以及如何閱讀該配置(treeBuilder?或者像$ this-> getParameters('myapp')之類的東西?我懷疑我在某處丟失了一些明顯的東西。

謝謝!

回答

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'); 
+0

完美,正是我所需要的,謝謝@kuba – mogoman