بنظر من بهتره میدلورهامون رو بصورت method chainig به روتهامون بدیم که خوانایی کد ما بالاتر میبره :
به این صورت
private static $middleware;
public static function add($methods, $uri, $action = null)
{
$methods = is_array($methods) ? array_map('strtolower', $methods) : [$methods];
self::$routes[] = ['methods' => $methods, 'uri' => $uri, 'action' => $action];
return new self;
}
public function middleware($middlewareName){
self::$middleware = is_array($middlewareName) ? $middlewareName : [$middlewareName];
self::$routes[]['middleware']=self::$middleware;
}
برای تعریف میدلور هام اینجوری عمل میکنیم
Route::add(['get'],'/home',function(){
echo "Welcome";
})->middleware(BlockFirefox::class);
#exm2
Route::get('/product/list','product@list')->middleware([BlockFirefox::class,BlockIe::class])
#
سلام و احترام
بله یه چیز شبیه به routeی که توی لاراول استفاده میشه
اصلاح کد بالا
private static $middleware;
public static function add($methods, $uri, $action = null)
{
$methods = is_array($methods) ? array_map('strtolower', $methods) : [$methods];
self::$routes[] = ['methods' => $methods, 'uri' => $uri, 'action' => $action];
return new self;
}
public function middleware($middlewareName){
self::$middleware = is_array($middlewareName) ? $middlewareName : [$middlewareName];
self::$routes[count(self::$routes)-1]['middleware']=self::$middleware;
}