Symfony - 使用命令运行 Phing 任务

当我尝试bin/phing clear_cache_action从控制台运行该 phing 命令时,一切正常。不幸的是,当我尝试从 Symfony 项目中的控制器运行相同的命令时,出现错误。


那我的代码:


    public function clearAction()

    {

        $process = new Process('bin/phing clear_cache_action');

        $process->run();


        if (!$process->isSuccessful()) {

            throw new ProcessFailedException($process);

        }


        echo $process->getOutput();

    }

Symfony 返回给我那个错误:


The command "bin/phing clear_cache_action" failed.


Exit Code: 127(Command not found)


Working directory: /var/www/caolin/web


Output:

================



Error Output:

================

sh: 1: bin/phing: not found

Linux 命令,例如'ls' 工作正常。如何从代码运行 phing 命令?


qq_花开花谢_0
浏览 103回答 1
1回答

largeQ

我猜你正试图phing从Controller. 因此Working directory: /var/www/caolin/web代替的/var/www/caolin原因解析bin/phing到/var/www/caolin/web/bin/phing不存在。您应该将当前工作目录设置为%kernel.project_dir%:$process = new Process(    ['bin/phing', 'clear_cache_action'],     $this->getParameter('kernel.project_dir'));$process->run();但是,除非您真的确定自己在做什么,否则我不建议从 Controller 启动流程。
打开App,查看更多内容
随时随地看视频慕课网APP