Я пытаюсь запустить команду с некоторыми пользовательскими параметрами, которые я добавил в свой 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 не переключает среду и сохраняет среду по умолчанию,
Любая идея?
Вы должны сделать свой каталог кэша и журналов доступным для записи. Для этого прочитайте документацию: 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
После этого очистите кеш, и вы получите обновленный файл конфигурации для вашей промежуточной среды.
Других решений пока нет …