Symfony - 使用命令 运行 Phing 任务
Symfony - use Command to run Phing task
当我尝试从控制台 运行 该 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 returns 我那个错误:
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 命令?
我猜你正试图从 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 启动进程,除非您真的确定自己在做什么。
当我尝试从控制台 运行 该 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 returns 我那个错误:
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 命令?
我猜你正试图从 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 启动进程,除非您真的确定自己在做什么。