Конфигурация Symfony 2 для Command - PullRequest
1 голос
/ 09 октября 2011

Кто-нибудь знает, как лучше всего создать конфигурацию для команды консоли / командной строки (или даже в любой части приложения?)

Чего я хотел бы добиться, так это (например,)

$ 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 Ответ

7 голосов
/ 09 октября 2011

В команде у вас есть доступ к контейнеру с помощью метода getContainer (), если вы расширяете класс ContainerAwareCommand .

Вы можете определить свои конфигурации в разделе параметров файла служб:

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

Тогда вы сможете получить к ним доступ с помощью контейнера (как описано в другой вопрос ):

$this->getContainer()->getParameter('server_1');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...