执行php app / console doctrine:schema:从控制器symfony 2更新

时间:2012-03-06 17:27:43

标签: doctrine symfony

我想执行此命令

php app/console doctrine:schema:update

来自控制而不使用exec php函数,

任何评论都将全部用于我。

感谢!!!

2 个答案:

答案 0 :(得分:15)

如果您正在查看here,则在底部有一个如何从symfony代码中执行命令的示例。

请注意最后的说明,说在您的代码中使用命令可能不是一个好主意。

如上所述,应谨慎使用以下代码。我不会在symfony doc中使用它作为statet的原因,但是它有效。

在控制器中使用以下代码时,您可以执行命令:

$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的现有类或根据您的需要创建自己的类。

答案 1 :(得分:11)

感谢每一个人,

我使用了这段代码

            $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));

并且在此link中,有些信息可能对其他人有用

感谢!!!