design

Laravel’de Middleware Kullanımı ve Özelleştirme

March 23, 2025

Merhaba arkadaşlar, bugün sizlere Laravel’de Middleware kullanımı ve bu yapıyı nasıl özelleştirebileceğinizi anlatacağım. Middleware, Laravel’de HTTP isteklerini filtrelemek ve bu isteklere müdahale etmek için kullanılan güçlü bir araçtır. Eğer uygulamanızda güvenlik, yetkilendirme veya loglama gibi işlemler yapmak istiyorsanız, Middleware tam size göre! Gelin, bu konuyu adım adım inceleyelim.


Middleware Nedir?

Middleware, HTTP isteklerinin uygulamanıza ulaşmadan önce veya uygulamanızdan çıktıktan sonra bu isteklere müdahale etmenizi sağlayan bir yapıdır. Örneğin, bir kullanıcının giriş yapıp yapmadığını kontrol etmek veya belirli bir IP adresinden gelen istekleri engellemek için Middleware kullanabilirsiniz.


Laravel’de Middleware Kullanımı


Middleware Oluşturma

Yeni bir Middleware oluşturmak için aşağıdaki komutu kullanabilirsiniz:


php artisan make:middleware CheckAge


Bu komut, app/Http/Middleware dizini altında CheckAge.php adında bir Middleware dosyası oluşturacaktır.

Middleware’i Düzenleme


Oluşturduğunuz Middleware dosyasını açın ve handle metodunu düzenleyin. Örneğin, kullanıcının yaşını kontrol eden bir Middleware yazalım:


public function handle($request, Closure $next){    if ($request->age < 18) {        return redirect('home');    }     return $next($request);}


Bu Middleware, kullanıcının yaşı 18’den küçükse home sayfasına yönlendirme yapacaktır.


Middleware’i Kaydetme

Middleware’i kullanabilmek için önce app/Http/Kernel.php dosyasında kaydetmeniz gerekiyor. $routeMiddleware dizisine Middleware’inizi ekleyin:


protected $routeMiddleware = [    'check.age' => \App\Http\Middleware\CheckAge::class,];


Middleware’i Route’larda Kullanma

Middleware’i route’larda kullanmak için aşağıdaki gibi tanımlayabilirsiniz:


Route::get('/dashboard', function () {    // Sadece 18 yaş ve üstü kullanıcılar erişebilir})->middleware('check.age');


Global Middleware

Eğer bir Middleware’in tüm HTTP isteklerinde çalışmasını istiyorsanız, bunu $middleware dizisine ekleyebilirsiniz:


protected $middleware = [    \App\Http\Middleware\CheckAge::class,];


Middleware Özelleştirme

Laravel, Middleware’leri özelleştirmek için birçok esneklik sunar. İşte bazı özelleştirme örnekleri:


Parametreli Middleware

Middleware’lere parametre gönderebilirsiniz. Örneğin, yaş kontrolü için parametre alan bir Middleware yazalım:


public function handle($request, Closure $next, $age){    if ($request->age < $age) {        return redirect('home');    }     return $next($request);}


Bu Middleware’i route’da şu şekilde kullanabilirsiniz:


Route::get('/dashboard', function () {    // Sadece 21 yaş ve üstü kullanıcılar erişebilir})->middleware('check.age:21');


Gruplama

Birden fazla Middleware’i gruplayarak tek bir isim altında kullanabilirsiniz. Örneğin, web grubuna Middleware’ler ekleyebilirsiniz:


protected $middlewareGroups = [    'web' => [        \App\Http\Middleware\EncryptCookies::class,        \App\Http\Middleware\VerifyCsrfToken::class,    ],];


Bu grubu route’larda şu şekilde kullanabilirsiniz:


Route::middleware('web')->group(function () {    Route::get('/profile', function () {        // Web Middleware grubu bu route için geçerli    });});


Middleware Kullanmanın Avantajları

  • Güvenlik: Middleware, güvenlik kontrolleri yapmak için idealdir.
  • Esneklik: Middleware’leri özelleştirerek farklı ihtiyaçlara uygun hale getirebilirsiniz.
  • Kod Tekrarını Önleme: Middleware, ortak işlemleri tek bir yerde toplar ve kod tekrarını önler.


Laravel’de Middleware kullanımı, HTTP isteklerini filtrelemek ve bu isteklere müdahale etmek için güçlü bir araçtır. Eğer uygulamanızda güvenlik, yetkilendirme veya loglama gibi işlemler yapmak istiyorsanız, Middleware’leri etkili bir şekilde kullanabilirsiniz. Bir sonraki yazımda, Laravel ile Real-Time Uygulamalar: Pusher ve WebSocket Entegrasyonu konusuna değineceğim. Görüşmek üzere!

6 + 6 =