Giriş
HTTP Ara Katmanı uygulamanıza gelen HTTP isteklerini filtrelemek için uygun mekanizma sağlar. Örneğin Laravel giriş yapmış kullanıcısını doğrulayan bir ara katman dahil edilmiştir. Kullanıcı doğrulaması başarısızsa ara katman kullanıcıyı giriş ekranına yönlendirir. Ancak, kullanıcı doğrulaması başarılı ise ara katman, isteğin işlenmesine izin verecektir.
Laravel’e bakım modu, kullanıcı doğrulama, CSRF koruması gibi ara katmanlar dahil edilmiştir. Tüm bu ara karmanlar app/Http/Middleware klasöründedir.
Ara Katman Tanımlama
Yeni bir ara katman oluşturmak için make:middleware Artisan komutunu kullanın.
|
1 |
php artisan make:middleware OldMiddleware |
Bu komut app/Http/Middleware klasörünüze OldMiddleware sınıfını yerleştirecek. Bu ara katmanda yalızca age değeri 200 den fazla olduğunda yönlendireceğiz. Aksi kullanıcı “home” adresine geri gönderilecek.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
namespace App\Http\Middleware; use Closure; class OldMiddleware { /** * Run the request filter. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if ($request->input('age') <= 200) { return redirect('home'); } return $next($request); } } |
Gördüğünüz gibi, verilen age değeri 200 den küçük veya eşit ise, ara katman kullanıcıyı yönlendirecek; aksi durumda istek uygulamanızda işlenmeye devam edecek. İsteği uygulamanın daha derinlerine geçirmek için, basitçe $next çağırılır.
Before / After Ara Katmanı
Bir ara katmanın bir istekten önce veya sonra çalışıp çalışmayacağı kendisine bağlıdır. Örnek olarak, aşağıdaki ara katman istek uygulama tarafından işlenmeden önce çalışacak:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle($request, Closure $next) { // Perform action return $next($request); } } |
Fakat, bu ara katman isteğin uygulama tarafından işlendikten sonra çalıştırılacak:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
namespace App\Http\Middleware; use Closure; class AfterMiddleware { public function handle($request, Closure $next) { $response = $next($request); // Perform action return $response; } } |
Ara Katmanın Kaydedilmesi
Genel Ara Katman
Bir ara katmanın uygulamanıza yapılan her HTTP isteğinde çalışmasını istiyorsanız, app/Http/Kernel.php sınıfınızın $middleware özelliğinde listeleyin.
Yönlendiricilere Ara Katman Atama
|
1 2 3 4 5 6 7 |
// Within App\Http\Kernel Class... protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, ]; |
LARAVEL 5 DÖKÜMAN için çok teşekkür ederim.
İyi çalışmalar..