بنظرم بهتره برای میدلور ها بصورت method chainig رفتار کنیم

پرسیده شده
فعالیت 1074 روز پیش
دیده شده 376 بار
0

بنظر من بهتره میدلورهامون رو بصورت 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])
#

 

فایل پیوست

امیر
امیر

1 خرداد 00

0
حذف شده

سلام و احترام

بله یه چیز شبیه به routeی که توی لاراول استفاده میشه

فایل پیوست

امیر صالحی

توسط

امیر صالحی

1 خرداد 00

حذف شده
سلام امیر جان، توی کد بالا که متد static چرا return new self گذاشتیم؟ مگر برای متد استاتیک هم نیاز به new کردن داریم؟
محمد گازری

2 خرداد 00

0
حذف شده

اصلاح کد بالا

    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;
    }

 

فایل پیوست

امیر

توسط

امیر

1 خرداد 00

جلسه پیاده سازی امکان افزودن Middleware ها به Route های پروژه