我在路由系统中使用了匿名函数的路由系统和/或框架(Laravel,Silex和Klein等),我找到了一些数字。以下是我想要解释的明显语法:
$requestHandler->run(function($request, $response) use ($requestHandler){
if($request->isAllowed()){
$resource = new Resource($request->getPost());
$response->prepare($resource);
}
if($response->hasErrors())
\Log\ErrorLog::write($response->getErrors());
return $response->getOutput();
});
这个想法是处理我这样的所有CURL请求,但我不确定这个概念是如何工作的。在我可以使用它们之前,我应该创建$ request,$ response和$ requestHandler类的实例吗?
答案 0 :(得分:0)
我已设法使用上述问题中概述的匿名函数。我简单地创建了我的调度程序类,如下所示:
namespace FileServer;
class Dispatcher
{
public static function run($execution)
{
return $execution();
}
}
在我的索引文件中,我只运行以下代码:
\FileServer\Dispatcher::run(function(){
echo "Hello anonymous funtion.";
});
这可以通过命令行和浏览器工作,这意味着我在正确的方向。但是,我仍然对参数传递的位置和方式感到困惑,因为从现有的框架中,它们只是将$ request和$ response作为参数传递,但它们并未在任何地方实例化。
如果有人可以告诉我这是如何运作的,因为我所遵循的php maual对我来说并不清楚。