Symfony - 使用命令运行 Phing 任务

Symfony - use Command to run Phing task

提问人:Ruben 提问时间:7/31/2019 更新时间:8/1/2019 访问量:217

问:

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

我的代码:

    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 命令?

php linux symfony 进程 phing

评论


答:

0赞 Ion Bazan 7/31/2019 #1

我猜您正在尝试从 .因此,而不是解决不存在的原因。您应该将当前工作目录设置为:phingControllerWorking directory: /var/www/caolin/web/var/www/caolinbin/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();

但是,我不建议从控制器启动进程,除非您真的确定自己在做什么。

评论

1赞 hspaans 7/31/2019
第二行不应该是这样的:['bin/phing', 'clear_cache_action'],