Я использую akeneo pim, который использует symfony 3.4 для решения некоторых желаний клиентов. Итак, я впервые использую symfony и столкнулся с некоторыми проблемами. Что мне нужно сделать, так это создать пользовательский интерфейс, в котором пользователь может добавлять свои собственные переводы для главного меню. И эти переводы берутся из файла конфигурации /translation/jsmessages.en.yml. Итак, я создал пакет, изменил файл yaml и все почти готово. Но теперь, когда я меняю файл yaml, мне нужно очистить кеш, сбросить переводы, запустить веб-пакет, иначе изменение текста меню не будет видно. Поэтому я хотел создать сценарий оболочки для этого. Что-то вроде этого:
public function indexAction()
{
(new YmlReader())->readYmlFile();
exec('rm -rf ./web/bundles/* ./web/css/* ./web/js/*');
exec('rm -rf web/js/translations/*');
exec('php bin/console pim:install:assets --env=prod');
exec('php bin/console assets:install --symlink web');
exec('php bin/console oro:translation:dump');
exec('yarn run webpack');
return $this->render('PimcWhiteLabelBundle:Default:index.html.twig');
}
Но это не работает, может быть, потому что он выполняет скрипт как пользователь www-data, я не знаю. И теперь я пытаюсь создать команду. Есть ли хороший способ сделать это через symfony, если кто-то знает, как лучше всего это сделать в symfony. Итак, я создал команду, мне просто нужно направление, как к этому подойти:
protected function execute(InputInterface $input, OutputInterface $output)
{
$argument = $input->getArgument('argument');
if ($input->getOption('option')) {
// my exec commands
}
$output->writeln('Command result.');
}
Спасибо за все что ты сделал для меня.