極簡架構模式-前端控制器模式

long2ge發表於2021-12-18

定義

提供一個集中的請求處理機制,所有的請求都將由一個單一的處理程式處理。

結構中包含的角色

  1. 前端控制器(Front Controller)
  2. 排程器(Dispatcher)
  3. 檢視(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");

實際應用場景

  1. 認證
  2. 授權
  3. 記錄日誌
  4. 跟蹤請求
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Long2Ge

相關文章