Laravel Middleware Kullanımı

Web Doktoru - Laravel Middleware Kullanımı

Laravel Middleware Kullanımı

İçindekiler

Laravel Middleware Kullanımı ile HTTP İsteklerini Filtreleme ve Kontrol Etme

Laravel, modern web uygulamaları geliştirmek için kullanılan güçlü bir PHP framework’üdür. Laravel’in sunduğu araçlardan biri olan Middleware, HTTP isteklerini filtrelemek ve kontrol etmek için kullanılan bir mekanizmadır. Middleware, istek ve yanıt arasında çalışarak belirli kontroller yapar ve bu sayede uygulamanızın güvenliğini, kullanıcı yetkilendirmesini ve diğer işlemlerini kolayca yönetebilirsiniz. Bu makalede, Laravel Middleware’in ne olduğunu, nasıl oluşturulduğunu ve nasıl kullanıldığını detaylı bir şekilde inceleyeceğiz.


1️⃣ Middleware Nedir?

Middleware, Laravel’de HTTP isteklerini filtrelemek ve kontrol etmek için kullanılan bir ara katmandır. Bir HTTP isteği uygulamaya ulaşmadan önce veya uygulamadan bir yanıt döndürülmeden önce Middleware devreye girer. Bu sayede, istekler üzerinde belirli kontroller yapabilir ve gerekli durumlarda isteği reddedebilir veya yönlendirebilirsiniz.

Middleware’in Kullanım Alanları:

  • Kullanıcı Yetkilendirme: Kullanıcının giriş yapıp yapmadığını veya belirli bir yetkiye sahip olup olmadığını kontrol eder.
  • Güvenlik İşlemleri: İsteklerin belirli bir IP adresinden gelip gelmediğini veya belirli güvenlik kurallarına uyup uymadığını kontrol eder.
  • Veri Doğrulama: İstekte gönderilen verilerin geçerli olup olmadığını kontrol eder.
  • Loglama ve Analiz: İsteklerin loglanması veya analiz edilmesi için kullanılır.

Örneğin, bir kullanıcının belirli bir sayfaya erişip erişemeyeceğini kontrol etmek için Middleware kullanabilirsiniz.


2️⃣ Middleware Nasıl Oluşturulur?

Laravel’de yeni bir Middleware oluşturmak oldukça kolaydır. Laravel Artisan komut satırı aracını kullanarak bir Middleware oluşturabilirsiniz.

Adım 1: Middleware Oluşturma

Terminalde aşağıdaki Artisan komutunu çalıştırarak yeni bir Middleware oluşturabilirsiniz:

php artisan make:middleware CheckAge

Bu komut, app/Http/Middleware/CheckAge.php dosyasını oluşturacaktır.

Adım 2: Middleware İçeriğini Düzenleme

Oluşturulan Middleware dosyası aşağıdaki gibi görünecektir:

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

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

        return $next($request);
    }
}
  • handle Metodu: Middleware’in ana işlevi bu metod içinde tanımlanır. Bu metod, gelen isteği kontrol eder ve gerekli işlemleri yapar.
  • $request->age: İstekte gönderilen age parametresini kontrol eder.
  • redirect('home'): Eğer kullanıcının yaşı 18’den küçükse, kullanıcıyı home sayfasına yönlendirir.
  • $next($request): Eğer şart sağlanıyorsa, isteğin devam etmesine izin verir.

3️⃣ Middleware’i Route Üzerinde Kullanma

Oluşturduğunuz Middleware’i kullanabilmek için öncelikle app/Http/Kernel.php dosyasına eklemeniz gerekiyor.

Adım 1: Middleware’i Kernel’e Ekleme

Kernel.php dosyasında bulunan $routeMiddleware dizisine Middleware’inizi ekleyin:

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

Bu işlem, checkAge adıyla Middleware’inizi kaydeder.

Adım 2: Middleware’i Route Üzerinde Uygulama

Middleware’i bir route üzerinde kullanmak için aşağıdaki gibi bir tanım yapabilirsiniz:

Route::get('/profile', function () {
    return view('profile');
})->middleware('checkAge');

Bu örnekte, /profile sayfasına erişmeye çalışan kullanıcıların yaşı kontrol edilir. Eğer kullanıcı 18 yaşından küçükse, home sayfasına yönlendirilir.


4️⃣ Middleware’i Global Olarak Kullanma

Eğer bir Middleware’i tüm isteklere otomatik olarak uygulamak istiyorsanız, Kernel.php dosyasındaki $middleware dizisine ekleyebilirsiniz:

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

Bu durumda, Middleware tüm HTTP isteklerinde çalışacaktır. Ancak, bu tür bir kullanım dikkatli yapılmalıdır çünkü Middleware’in tüm isteklerde çalışması, performans sorunlarına neden olabilir.


5️⃣ Middleware Grupları

Laravel, Middleware’leri gruplamak için $middlewareGroups özelliğini sunar. Bu özellik, birden fazla Middleware’i tek bir grup altında toplamanızı sağlar. Örneğin, web ve api grupları varsayılan olarak Laravel’de tanımlıdır.

Örnek: Middleware Grubu Oluşturma

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Session\Middleware\StartSession::class,
    ],
    'api' => [
        'throttle:api',
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],
];

Bu grupları route’lar üzerinde kullanabilirsiniz:

Route::middleware('web')->group(function () {
    Route::get('/profile', function () {
        return view('profile');
    });
});

6️⃣ Middleware Parametreleri

Middleware’lere parametre göndermek de mümkündür. Örneğin, yaş kontrolü yapan bir Middleware’e farklı yaş sınırları gönderebilirsiniz.

Örnek: Parametreli Middleware

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

    return $next($request);
}

Route üzerinde parametre göndermek için:

Route::get('/profile', function () {
    return view('profile');
})->middleware('checkAge:21');

Bu örnekte, kullanıcının yaşı 21’den küçükse home sayfasına yönlendirilir.


7️⃣ Middleware’in SEO’ya Etkisi

Middleware, doğrudan SEO ile ilişkili değildir. Ancak, dolaylı olarak SEO’ya katkıda bulunabilir. Örneğin:

  • Güvenlik: Middleware ile yapılan güvenlik kontrolleri, web sitenizin güvenliğini artırarak arama motorlarının güvenini kazanmanızı sağlar.
  • Kullanıcı Deneyimi: Middleware ile yapılan yönlendirmeler, kullanıcıların doğru sayfalara erişmesini sağlar. Bu, kullanıcı deneyimini artırarak SEO’ya olumlu katkıda bulunur.
  • Hız ve Performans: Middleware ile yapılan optimizasyonlar, web sitenizin hızını artırabilir. Hızlı web siteleri, arama motorları tarafından daha üst sıralarda yer alır.

Sonuç

Laravel Middleware, HTTP isteklerini filtrelemek ve kontrol etmek için güçlü bir araçtır. Kullanıcı yetkilendirme, güvenlik işlemleri ve veri doğrulama gibi birçok alanda kullanılabilir. Middleware’i route’lara veya global olarak uygulayabilir, hatta parametrelerle özelleştirebilirsiniz. Middleware, doğrudan SEO ile ilişkili olmasa da, dolaylı olarak web sitenizin güvenliğini, kullanıcı deneyimini ve performansını artırarak SEO’ya katkıda bulunabilir.

Laravel Middleware’i etkili bir şekilde kullanarak, web uygulamalarınızı daha güvenli, düzenli ve verimli hale getirebilirsiniz.

Picture of Web Doktoru
Web Doktoru
Matematikçi, Adli Bilişim Uzmanı, Bil. Yük. Müh. Full Stack Developer
İlginizi Çekebilir
Web Doktoru - Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler

Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü araçlar sunar. WebSockets, Pusher, Laravel Echo ve Broadcasting gibi teknolojiler

Web Doktoru - Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler 📩

Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri gibi ihtiyaçları kolayca karşılamak için güçlü araçlar sunar. Bu yazıda,

Whatsapp ile mesaj göndermek için tıklayın

Telefon ile sadece 09:00 - 18:00 saatleri arası ulaşabilirsiniz.