我想执行此命令
php app/console doctrine:schema:update
来自控制而不使用exec
php函数,
任何评论都将全部用于我。
感谢!!!
答案 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中,有些信息可能对其他人有用
感谢!!!