【问题标题】:Symfony - use Command to run Phing taskSymfony - 使用命令运行 Phing 任务
【发布时间】:2019-07-31 07:53:01
【问题描述】:

当我尝试从控制台运行该 phing 命令:bin/phing clear_cache_action 时,一切正常。不幸的是,当我尝试从 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 命令?

【问题讨论】:

    标签: php linux symfony process phing


    【解决方案1】:

    我猜你正试图从Controller 执行phing。因此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 启动进程。

    【讨论】:

    • 第二行不应该是这样的:['bin/phing', 'clear_cache_action'],
    猜你喜欢
    • 1970-01-01
    • 2014-07-20
    • 2012-09-19
    • 1970-01-01
    • 1970-01-01
    • 2022-07-07
    • 2017-06-26
    • 2016-03-22
    • 1970-01-01
    相关资源
    最近更新 更多