لا تستخدم Middleware بداخل Controllers، يفضل إستخدامها في Route

لا تستخدم Middleware بداخل Controllers، يفضل إستخدامها في Route

2024-12-22 وقت القراءه : 1 دقائق

Bad Practice Example

class SomeController extends Controller
{
    public function __construct() {
        $this->middleware('auth');
    }
}
class SomeOtherController extends Controller
{
    public function __construct() {
        $this->middleware('auth');
    }
}

What To Do Instead

// routes/web.php
Route::group(['middleware' => 'auth'], function() {
    Route::get('some', [SomeController::class, 'index']);
    Route::get('someother', [SomeOtherController::class, 'index']);
});

إذا كان لدينا نفس Middleware يتكرر في أكثر من Controller، من الأفضل أن يتم تحديد ذلك في ملف route لسببين:

  • قابلية القراءة: ملف route هو أول ملف ينظر إليه المطورين، ومباشره يمكنهم رؤية middleware، دون البحث في الـ Controllers.
  • السهولة والسرعة : إذا أردنا تطبيق middleware على controllers أخرى فإنه أسهل.
إضافة تعليق
Loading...