Doctrine 执行php应用程序/控制台原则:模式:从控制器symfony 2更新

Doctrine 执行php应用程序/控制台原则:模式:从控制器symfony 2更新,doctrine,symfony,Doctrine,Symfony,我想执行这个命令 php app/console doctrine:schema:update 从控件中,不使用execphp函数 任何评论都将完全用于我 谢谢 如果您正在查看,底部有一个示例,说明如何从symfony代码中执行命令 还请注意结尾的注释,其中指出在代码中使用命令可能不是一个好主意 如上所述,应小心使用以下代码。由于symfony文档中的原因,我不会使用它,但它是有效的 在控制器中使用以下代码时,您可以执行命令: $kernel = $this->get('kernel')

我想执行这个命令

php app/console doctrine:schema:update
从控件中,不使用
exec
php函数

任何评论都将完全用于我

谢谢

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

还请注意结尾的注释,其中指出在代码中使用命令可能不是一个好主意

如上所述,应小心使用以下代码。由于symfony文档中的原因,我不会使用它,但它是有效的

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

$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));
如果需要输出,则必须使用实现OutputinInterface的现有类或根据需要创建自己的类。

多亏了每一个类

我用了这个密码

            $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));
在这方面,有些信息可能对其他人有用


谢谢

@JERC它指的是不使用代码中未在命令行上执行的命令。如果您打算从应用程序内部调用它,请考虑将代码重构为单独的类/服务,然后相应地调整您的代码。我会更新我的答案!谢谢,它能工作,但要像服务一样做我怎么能做到这一点,对不起,我是symfony 2的乞丐。谢谢有没有关于如何在不需要清除缓存的情况下使实体可发现的想法?