Middleware, laravel по-російськи
Посередники (англ. Middleware) надають зручний механізм для фільтрації HTTP-запитів вашої програми. Наприклад, в Laravel є посередник для перевірки аутентифікації користувача. Якщо користувач не аутентифікований, посередник перенаправить його на екран входу в систему. Якщо ж користувач аутентифікований, посередник дозволить запитом пройти далі в додаток.
У Laravel є кілька стандартних посередників, включаючи посередники для аутентифікації і CSRF-захист. Всі вони розташовані в каталозі app / Http / Middleware.
створення посередника
Щоб створити посередника, використовуйте команду Artisan sh make: middleware:
Ця команда помістить новий клас CheckAge в ваш каталог app / Http / Middleware. У цьому посереднику ми будемо пропускати тільки ті запити, в яких age буде більше 200, а у всіх інших випадках будемо перенаправляти користувачів на «home» URI.
Найпростіше уявити посередника як набір «рівнів». які повинен пройти HTTP-запит, перш ніж він дійде до вашого застосування. Кожен рівень може перевірити запит і навіть зовсім відхилити його.
Виконання посередника «до» чи «після» запиту
Момент, в який спрацює посередник - до або після запиту, залежить від нього самого. Наприклад, цей посередник виконає деяку задачу раніше. ніж запит буде оброблений додатком:
А цей посередник виконає завдання після того, як запит буде оброблений додатком:
Реєстрація посередника
Глобальний посередник
Якщо ви хочете, щоб посередник запускався для кожного HTTP-запиту у вашому додатку, додайте цей посередник в властивість PHP $ middleware класу app / Http / Kernel.php.
Призначення посередника для маршрутів
Якщо ви хочете призначити посередника для конкретних маршрутів, то спочатку вам треба додати ключ посередника в клас app / Http / Kernel.php. За замовчуванням властивість PHP $ routeMiddleware цього класу містить записи посередників Laravel. Щоб додати ваш власний посередник, просто додайте його до цього списку і надайте йому ключ на свій вибір. наприклад:
Коли посередник визначений в HTTP-ядрі, ви можете використовувати метод middleware для призначення посередника на маршрут: