Seelah sebelumnya saya telah membahas tentang Memahami Tentang Middleware Serta Penggunaanya Di Laravel sekarang saya akan melanjutkanya lagi sedikit karena ada yang harus saya sampaikan lagi di pembahasan tentang Memahami Tentang Middleware Serta Penggunaanya Di Laravel bagian 2.
Baik saya akan mlanjutkanya yaitu membahas :
Before/After Middleware
Secara general middleware di laravel bisa di bagi menjadi dua jenis yaitu before middleware dan after middleware, nah perbedaan antara keduanya adalah jika before middleware yaitu merupakan Middleware yang diproses sebelum request masuk kedalam controller semetara after middleware merupakan middleware yang diproses setelah request masuk kedalam Controller.
Berikut adalah cara penulisan masing-masing kedua middleare terebut :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php namespace App\Http\Middleware; use Closure; class BeforeMiddleware { public function handle($request, Closure $next) { //lakukan sesuatu terhadap request yang masuk.. return $next($request) } } |
JIka di perhatikan bahwa before middleware akan memproses lebih dahlu request yang masuk sebelum menuju controller yang di tuju.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php namespace App\Http\Middleware; use Closure; class AfterMiddleware { public function handle($request, Closure $next) { $response = $next($request); //lakukan sesuatu terhadap response yang diperoleh return $response } } |
Berbeda dengan ‘Before Middleware’, pada after middleware request yang masuk akan di teruskan dahulu ke controller yang di tuju lalu setelah mendapatkan response kita akan memprosesnya lebih lanjut sebelum nantinya dikembalikan ke web browser untuk kemudian di render.
Meregistrasikan Middlware Secara Global
Yang menguntungkanya middleware juga bisa di set secara global jadi yang mana jika ada request yang masuk maka middleware tersebut akan otomatis di panggil. untuk dapat meregistrasikan Middleware yang dibuat secara global, kita dapat menambahkannya di dalam file app/Http/Kernel.php seperti contoh di bawah ini:
|
1 2 3 4 5 6 7 8 9 |
protected $middleware = [ \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class, \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\MyGlobalMiddleware::class, //Middlware yang baru dibuat ]; |
Menset middleware Di Routes
Setelah tadi kita membahas menintegrasikan secara global, middleware juga apat di set atau di integrasikan kepada routes tertentu dengan cara menambahkan nama Middleware yang dibuat kedalam file app/Http/Kernel.php seperti contoh dibawah ini:
|
1 2 3 4 5 6 7 8 9 |
protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'csrf' => \App\Http\Middleware\VerifyCsrfToken::class, 'oauth' => \LucaDegasperi\OAuth2Server\Middleware\OAuthMiddleware::class, 'oauth-owner' => \LucaDegasperi\OAuth2Server\Middleware\OAuthOwnerMiddleware::class, 'my-middlware' => \App\Http\Middleware\MyGlobalMiddleware::class, //Middlware yang baru dibuat ]; |
Lalu kita panggil middlewarenya di routes seperti ini :
|
1 2 3 4 |
Route::get('admin', [ 'uses' => 'AdminController@index', 'middleware' => 'my-middleware' ]); |
Menset middleware Di Controller
Middleware juga bisa di set di bagian controller yang mana jika di lakukan dengan cara ini maka middleware ini berlaku pada method-method yang ada di controller terseut atau bisa secara spesifik di integrasikan ke method tertentu, cara nya seperti ini :
|
1 2 3 4 5 6 7 8 9 |
class MyController extends Controller { function __construct() { $this->middleware('my-middleware'); $this->middleware('log-middleware', ['only' => ['foo', 'bar']]); //selected method $this->middleware('subscribe-middleware', ['except' => ['baz']]) ; //exclude method } } |
Baiklah itu saja yang dapat saya sampaikan pada kesempatan kali ini tentang Memahami Tentang Middleware Serta Penggunaanya Di Laravel Bagian 2, sebenarnya itu hanya basic dari middleware silahkan cari refrensi untuk mencostumisasinya sesuai kebutuhan anda.