Выполнить 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));

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

Спасибо!!!