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.

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

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件