当我尝试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 命令?
我猜你正试图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 启动流程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句