除了 route 之外,要進入到 controller 之前,還要先經過 Middleware 這關。
接著我們就來來談談 Middleware 的設計。
把應該在 Middleware 裡面處理的內容,比方說過濾請求,放在 controller 裡面處理。
這樣一來,一旦過濾請求的規則有調整,之後維護的人就得在各個 controller 裡面找對應的 action 然後分別調整。把本來可以幾個小時解決的事情變成幾天的工作。
把商業邏輯寫在 Middleware 裡面,這樣的話,要調整商業邏輯的工程是怎麼也不會想到,他竟然得從 Middleware 開始找起。
更別提 Middleware 可以串連在一起的特性,讓之後要調整商業邏輯的工程是牽一髮動全身,根本不知道修改這個 Middleware 之後到底還會影響到其他哪些功能。