Laravel'de Middleware Kullanımı

Laravel'de Middleware Kullanımı
Hüseyin Erbayat Okuma Sayısı: 40

Laravel'de Middleware Kullanımı

Laravel'de middleware, gelen HTTP isteklerini işlerken belirli kontrolleri gerçekleştirmenize olanak tanır. Örneğin, isteğin belirli bir rol veya yetkiye sahip olup olmadığını kontrol edebilir, oturum durumunu doğrulayabilir veya isteği değiştirebilirsiniz.

Middleware Oluşturma

Yeni bir middleware oluşturmak için terminal veya komut istemcisini kullanabilirsiniz. Projenizin bulunduğu dizinde şu komutu çalıştırarak yeni bir middleware oluşturabilirsiniz:

php artisan make:middleware CustomMiddleware
    

Yukarıdaki komut, CustomMiddleware adında yeni bir middleware sınıfı oluşturur. Bu sınıf, app/Http/Middleware dizini altında yer alacaktır.

Middleware sınıfını oluşturduktan sonra, handle metodunu düzenleyerek middleware'in nasıl çalışacağını tanımlayabilirsiniz.

public function handle($request, Closure $next)
{
    // İstek işlemden önce yapılacak işlemler

    $response = $next($request);

    // İstek işlemden sonra yapılacak işlemler

    return $response;
}
    

Yukarıdaki örnekte, handle metodunda isteği işlemek için gerekli kontrolleri gerçekleştirebilir ve ardından $next parametresi ile sonraki middleware veya isteği yönlendirme zincirine devam edebilirsiniz.

Middleware Kullanımı

Middleware'leri projenizde kullanabilmek için App\Http\Kernel.php dosyasına eklemeniz gerekmektedir. Örneğin:

protected $middleware = [
    // ...
    \App\Http\Middleware\CustomMiddleware::class,
];
    

Yukarıdaki örnekte, CustomMiddleware'i tüm istekler için uygulamış olduk. Middleware'leri belirli bir rota veya rotalar grubuna uygulamak için App\Http\Kernel.php dosyasında $routeMiddleware özelliğini kullanabilirsiniz.

protected $routeMiddleware = [
    // ...
    'custom' => \App\Http\Middleware\CustomMiddleware::class,
];
    

Yukarıdaki örnekte, 'custom' adında bir isimlendirilmiş middleware grubu tanımladık. Bu durumda, rotalarınızda middleware yöntemini kullanarak bu isimlendirilmiş grubu belirtebilirsiniz:

Route::get('/example', 'ExampleController@index')->middleware('custom');