dpquu9206 2019-07-31 07:53 采纳率: 0%
浏览 183
已采纳

Symfony - 使用Command来运行Phing任务

When I try to run that phing command: bin/phing clear_cache_action from a console, everything works. Unfortunately, when I try to run the same command from the controller in the Symfony project I get an error.

That my code:

    public function clearAction()
    {
        $process = new Process('bin/phing clear_cache_action');
        $process->run();

        if (!$process->isSuccessful()) {
            throw new ProcessFailedException($process);
        }

        echo $process->getOutput();
    }

Symfony returns me that error:

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 commands e.g. 'ls' works properly. How can I run phing command from code?

  • 写回答

1条回答 默认 最新

  • dongxin2734 2019-07-31 08:00
    关注

    I guess you are trying to execute phing from a Controller. Thus Working directory: /var/www/caolin/web instead of /var/www/caolin causes resolving bin/phing to /var/www/caolin/web/bin/phing which does not exist. You should set your current working directory to %kernel.project_dir%:

    $process = new Process(
        ['bin/phing', 'clear_cache_action'], 
        $this->getParameter('kernel.project_dir')
    );
    $process->run();
    

    However, I would not recommend starting a process from a Controller unless you are really sure what you are doing.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 求解答(matlab)
  • ¥30 ffmpeg库使用过程中遇到的问题
  • ¥15 pyqt5 中python如何通过Qtwebchannel主动发消息给web前端
  • ¥15 关于HTML中title获取xml内容的问题
  • ¥15 fanuc机器人PRIO083数字信号未复原错误,如何解决?
  • ¥20 如何为现有电路板增加远程控制功能
  • ¥15 C#点击按钮的时候的循环次数就是最后一次,如何是循环第几次的值?
  • ¥15 UE5打包失败,求解决
  • ¥15 请问STM32G431的CANOPEN协议函数怎么写
  • ¥15 graphpad prism 三因素重复测定报错