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 CheckAgeBu 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.
Wordpress ile ilgilenmeye başlamışsanız ve aklınızda güvenliği nasıl sağlayacağınız varsa, bu eklentimiz tam aradığınız türden.…
Dijital pazarlama stratejilerinde başarılı olmak için SEO (Arama Motoru Optimizasyonu), GEO (Coğrafi Optimizasyon) ve AEO…
Günümüzde bir web sitesi sahibi olmak, hem bireyler hem de işletmeler için oldukça önemli hale…
Web Sunucusu Nedir? Web sunucusu, kullanıcıların internet üzerinden bir web sayfasına erişmesini sağlayan güçlü bir…
İçerik oluşturmak kolaydır. Özellikle son zamanlarda gelişen yapay zeka sayesinde. Ancak insanların hatırladığı marka içeriği…
Perfex CRM, hızlı kurulumu ve sade arayüzüyle Türkiye’de giderek daha fazla tercih edilen, Codeigniter altyapısı…