Использовать пользовательскую среду в Symfony Command

Я пытаюсь запустить команду с некоторыми пользовательскими параметрами, которые я добавил в свой config_staging.yml файл.

Вот параметр, который я хотел бы получить (находится в моем config_staging)

parameters:
bdd_name: 'ISB_bdd'

Этот же параметр есть и в config_dev (это имя БД, оно меняется для каждого env)

parameters:
bdd_name: 'DEV_ISB_bdd'

И это код в моем командном файле:

<?php
namespace SafeEngine\ParserFluxBundle\Command;

use [..]class GetFluxToProcessCommand extends ContainerAwareCommand
{
protected function configure()
{
$this
->setName('parser:GetFluxToProcess')
[...]
);
}

protected function execute(InputInterface $input, OutputInterface $output)
{
$tableTransactions = $this->getContainer()->getParameter('ISB_bdd');
var_dump($tableTransactions):

[...]

Тогда я бегу

php app/console parser:GetFluxToProcess -e staging

Но var_dump возвращает DEV_ISB_bddПараматер в dev Конфигурационный файл, а не тот, что в staging конфигурации. Похоже, что Symfony не переключает среду и сохраняет среду по умолчанию,

Любая идея?

0

Решение

Вы должны сделать свой каталог кэша и журналов доступным для записи. Для этого прочитайте документацию: http://symfony.com/doc/current/book/installation.html#configuration-and-setup. Например, для систем с поддержкой ACL вы можете использовать:

HTTPDUSER=`ps aux | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\  -f1`
sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs
sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:`whoami`:rwX app/cache app/logs

После этого очистите кеш, и вы получите обновленный файл конфигурации для вашей промежуточной среды.

0

Другие решения

Других решений пока нет …