Выполнить php app/console doctrine: схема: обновление с контроллера symfony 2
Я хочу выполнить эту команду
php app/console doctrine:schema:update
из правил без использования exec
php function,
Любой комментарий будет использоваться для меня полностью.
Спасибо!!!
Ответы
Ответ 1
Если вы ищете здесь, внизу приведен пример того, как выполнить команду из кода symfony.
Также обратите внимание на примечание в конце, говорящее, что не может быть хорошей идеей использовать команду в вашем коде.
Как сказано, следующий код следует использовать с осторожностью. Я бы не использовал его по причинам statet в symfony doc, но он работает.
При использовании следующего кода внутри вашего контроллера вы можете выполнить команду:
$kernel = $this->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);
$options = array('command' => 'list');
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
Если вам нужен вывод, вам нужно либо использовать существующий класс, реализующий OutputInterface, либо создать свой собственный в зависимости от ваших потребностей.
Ответ 2
Спасибо каждому,
Я использовал этот код
$kernel = $this->get('kernel');
$application = new \Symfony\Bundle\FrameworkBundle\Console\Application($kernel);
$application->setAutoExit(false);
//Create de Schema
$options = array('command' => 'doctrine:schema:update',"--force" => true);
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
//Loading Fixtures
$options = array('command' => 'doctrine:fixtures:load',"--append" => true);
$application->run(new \Symfony\Component\Console\Input\ArrayInput($options));
и в этой ссылка, есть некоторая информация, возможно, будет полезна для других
Спасибо!!!