aop 可以實(shí)現(xiàn)不修改原有邏輯的情況下,對功能的擴(kuò)展。是非常實(shí)用的功能。只要經(jīng)過容器的調(diào)用都支持切面 無需配置
class Test
{
// get請求
#[GET]
// 請求映射
#[Rule('/demo')]
// 方法進(jìn)入前調(diào)用 調(diào)用參數(shù)為callable 支持參數(shù)傳入
#[BeforeEntering([Test::class, 'beforeEntering'])]
// ..... 更多
// 方法出來后調(diào)用
#[AfterComingOut([Test::class, 'afterComingOut'])]
// ...更多
public function index(#[Replica('admin.view')] View $engine): string
{
dump('controller');
return 'controller ok';
}
// 支持依賴注入
public function beforeEntering(): void
{
// 如果這里返回了值,整個(gè)調(diào)用鏈將終止 控制器不會(huì)執(zhí)行
dump('beforeEntering');
}
public function afterComingOut(): void
{
// 如果這里返回 false,調(diào)用鏈將終止
dump('afterComingOut');
}
}