Intermediari (Eng. Middleware) furnizează un mecanism convenabil pentru filtrarea HTTP-cereri aplicației. De exemplu, în Laravel este intermediarul pentru autentificarea utilizatorului. În cazul în care utilizatorul nu este autentificat, proxy redirecționează la ecranul de Log on. În cazul în care utilizatorul este autentificat, mediatorul va permite solicitarea de a trece mai departe în aplicare.
În Laravel are mai mulți intermediari standard, inclusiv brokerii de autentificare și CSRF -Protect. Toate sunt situate în aplicația directorul / HTTP / Middleware.
Crearea unui mediator
Pentru a crea un agent, utilizați marca Artisan sh: middleware:
Această comandă va pune noua clasa CheckAge în aplicația directorul / HTTP / Middleware. In acest intermediar, vom permite numai acele cereri în cazul în care vârsta este mai mare de 200, iar în toate celelalte cazuri, vom redirecționa utilizatorii către URI «acasă».
Cel mai simplu mod de a prezenta un mediator ca un set de „niveluri“. care trebuie să treacă HTTP-cerere, înainte de a veni la cererea dumneavoastră. Fiecare nivel poate verifica cererea și respinge chiar complet.
Efectuarea intermediar „înainte“ sau „după“ interogare
Momentul în care mediatorul va lucra - înainte sau după solicitarea, depinde de el. De exemplu, mediatorul va efectua unele sarcini înainte. decât cererea va fi procesată de aplicație:
Și acest intermediar va executa sarcina după cererea este procesată de aplicație:
Înregistrare mediator
mediator global
Dacă doriți să rulați un intermediar pentru fiecare HTTP-solicitare la cererea dumneavoastră, adăugați mediatorul în PHP middleware clasa de proprietate $ app / HTTP / Kernel.php.
Numirea unui mediator pentru rutele
Dacă doriți să numească un mediator pentru o anumită rută, trebuie mai întâi să adăugați un mediator cheie în clasa / HTTP / Kernel.php app. Implicit PHP $ routeMiddleware această clasă de proprietate conține un număr record de intermediari Laravel. Pentru a adăuga propriul mediator, adăugați-l la listă și-i dau cheia de alegere. De exemplu:
În cazul în care intermediarul este definit în HTTP-core, puteți utiliza metoda middleware pentru numirea unui mediator la traseul: