Web Doktoru - Laravel Middleware Kullanımı
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.
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.
Örneğin, bir kullanıcının belirli bir sayfaya erişip erişemeyeceğini kontrol etmek için Middleware kullanabilirsiniz.
Laravel’de yeni bir Middleware oluşturmak oldukça kolaydır. Laravel Artisan komut satırı aracını kullanarak bir Middleware oluşturabilirsiniz.
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.
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.Oluşturduğunuz Middleware’i kullanabilmek için öncelikle app/Http/Kernel.php
dosyasına eklemeniz gerekiyor.
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.
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.
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.
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.
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');
});
});
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.
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.
Middleware, doğrudan SEO ile ilişkili değildir. Ancak, dolaylı olarak SEO’ya katkıda bulunabilir. Örneğin:
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.
Laravel’de Real-Time (Gerçek Zamanlı) Bildirimler Laravel, modern web uygulamalarında gerçek zamanlı bildirimler oluşturmak için güçlü…
Laravel’de Mail Gönderme ve Bildirimler Laravel, modern web uygulamaları geliştirirken e-posta gönderimi ve bildirim sistemleri…
Laravel, dosya yükleme ve depolama işlemleri için güçlü bir Storage (Dosya Depolama) mekanizması sunar. Bu mekanizma, yerel…
Laravel’de Çoklu Dil (Localization) Kullanımı: Uygulamanızı Küresel Hale Getirin 🌍 Laravel, modern web uygulamaları için…
Laravel’de Test Driven Development (TDD) ve Test Yazımı: Güvenilir ve Sürdürülebilir Kod Geliştirme Laravel, modern…
Laravel’de Scheduler (Zamanlanmış Görevler) Kullanımı: Otomatik İşlemler ve Zaman Yönetimi Laravel, modern web uygulamalarında belirli…