前端控制器模式 - Front Controller Pattern
定义
提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理。
结构中包含的角色
- 前端控制器(Front Controller)
- 调度器(Dispatcher)
- 视图(View)
最小可表达代码
class View
{
public function show($request)
{
echo('SHOW ' . $request);
}
}
class Dispatcher
{
private $view;
public function __construct()
{
$this->view = new View();
}
public function dispatch($request)
{
return $this->view->show($request);
}
}
class FrontController
{
private $dispatcher;
public function __construct()
{
$this->dispatcher = new Dispatcher();
}
public function dispatchRequest(String $request)
{
// 统一处理一些逻辑
$this->dispatcher->dispatch($request);
}
}
$frontController = new FrontController();
$frontController->dispatchRequest("TEST");
实际应用场景
- 认证
- 授权
- 记录日志
- 跟踪请求