Рубрики
Uncategorized

[Учебное пособие] Просторечное промежуточное программное обеспечение Laravel

Автор оригинала: David Wong.

От: https://learnku.com/ларавель/т…

Что такое промежуточное программное обеспечение Laravel?

Короче говоря, роль промежуточного программного обеспечения в laravel заключается в фильтрации HTTP-запросов и выполнении различных логических операций в соответствии с различными запросами.

Мы можем выполнить следующие функции с помощью промежуточного программного обеспечения:

  • Укажите определенные маршруты
  • Настройка заголовков HTTP-ответов
  • Запросы на запись
  • Параметры фильтрации запросов
  • Определите, включен ли режим обслуживания сайта
  • Выполните некоторые необходимые действия до и после ответа

Пользовательское промежуточное программное обеспечение

Выполнив следующие простые команды из командной строки, вы можете легко создать новое промежуточное программное обеспечение

php artisan make:middleware 
// Middleware Name is the name of the middleware you want to create

Чтобы выполнить приведенную выше команду, Laravel приложение/Http/Промежуточное программное обеспечение Автоматически создайте каталог, содержащий только промежуточное программное обеспечение для обработки метода.

Когда вызывается промежуточное программное обеспечение, обрабатывается Метод будет выполнен. Обратите внимание, что ручка Метод по умолчанию имеет два параметра $request И $следующий$запрос Используется для приема групповых запросов заявок, $следующий Передайте запрос в приложение. Эти два параметра являются дескриптором Необходимо! Промежуточное программное обеспечение также включает в себя программное обеспечение до промежуточного и после промежуточного уровня.

Предварительное промежуточное программное обеспечение, как следует из его названия, обрабатывает некоторую логику перед пересылкой запросов приложениям. С другой стороны, после промежуточного программного обеспечения он запускается после того, как приложение обработает запрос и сгенерирует ответ.

Предварительное промежуточное программное обеспечение:

Программное обеспечение после промежуточного уровня:

Категории промежуточного программного обеспечения

  • Глобальное промежуточное программное обеспечение
  • Промежуточное программное обеспечение маршрутизации

Глобальное промежуточное программное обеспечение запускается для каждого запроса, поступающего в приложение. Laravel поставляется с большинством из этих промежуточных программ, таких как Размер сообщения проверки , Обрезать Струны , Режим проверки формы Подожди минутку.

Промежуточное программное обеспечение маршрутизации выполняется только на маршрутах, к которым они подключаются Например Перенаправление аутентифицировано .

Промежуточное программное обеспечение для регистрации

Любое созданное промежуточное программное обеспечение должно быть зарегистрировано, потому что это единственный способ, которым Laravel знает о его существовании. Чтобы зарегистрировать промежуточное программное обеспечение, просто откройте имя kernel.php Файл, который находится в папке Http, выглядит следующим образом:

Этот файл содержит список всех зарегистрированных промежуточных программ, которые по умолчанию поставляются с Laravel. он содержит три основных массива, которые Этот файл содержит список всего зарегистрированного промежуточного программного обеспечения, предоставляемого по умолчанию Laravel. Он содержит три основные группы промежуточного программного обеспечения. $промежуточное программное обеспечение , $$группы промежуточного программного обеспечения И $ промежуточное программное обеспечение маршрута

 [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];
    /**
     * Application routing middleware.
     *
     * These middleware can be assigned to groups or used separately.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        //the just created middlware
        'superadmin' => \App\Http\Middleware\RedirectIfSuperAdmin::class, 
    ];
}

$промежуточное программное обеспечение Массивы содержат глобальное промежуточное программное обеспечение, которое выполняет каждый HTTP-запрос приложения, поэтому, если вы хотите запускать промежуточное программное обеспечение для каждого запроса, вам следует зарегистрировать его здесь. $$группы промежуточного программного обеспечения Это позволяет регистрировать промежуточное программное обеспечение в группах, что упрощает подключение большого количества промежуточного программного обеспечения к маршрутизации с помощью имен групп. $$промежуточное программное обеспечение маршрута Массив содержит каждое зарегистрированное промежуточное программное обеспечение маршрутизации.

Промежуточное программное обеспечение для распространения

Существует два основных способа применения зарегистрированного промежуточного программного обеспечения к маршрутизации.

  • Способ построения контроллера
  • Маршрутизация

Распределение промежуточного программного обеспечения Конструктивным методом

Существует большая гибкость в распределении посредством построения, которая обеспечивает два важных метода за исключением($параметров) И только (параметры$) Эти два метода могут разрешить или запретить применение промежуточного программного обеспечения к вспомогательным методам в контроллерах. Без этих двух методов промежуточное программное обеспечение будет использовать каждый метод с контроллером.

middleware('auth');
    }

    public function viewForum(){

      return view('index');
    }

    public function edit($id){

    }

    public function delete($id){

    }

}

Использовать за исключением И только Метод Мы можем выбрать для применения промежуточного программного обеспечения к указанному методу.

middleware('auth')->except(['viewForums', 'viewForumDetails']);
    }

    public function viewForums(){

      return view('index');
    }

    public function edit($id){

    }

    public function delete($id){

    }

    public function viewForumDetails(){

    }
}

Распространение промежуточного программного обеспечения посредством маршрутизации

Если зарегистрированное промежуточное программное обеспечение может быть подключено непосредственно к маршрутизации, как показано ниже:

middleware('auth');

/ ** Method 2
Or use fully qualified class names like this:
*/
use App\Http\Middleware\CheckAge;

Route::get('admin/profile', function () {
    // action
})->middleware(CheckAge::class);

// Method 3
Route::group(['middleware' => ['web']], function () {
    //action
});

N:Группа промежуточного программного обеспечения B может быть назначена для маршрутизации как единое промежуточное программное обеспечение

Параметры промежуточного программного обеспечения

Другие параметры могут быть переданы промежуточному программному обеспечению. Типичным примером является назначение каждому идентификатору пользователя роли, и промежуточное программное обеспечение проверяет роль пользователя, чтобы определить, имеет ли он доступ к запрошенному URI. Параметры могут быть переданы промежуточному программному обеспечению следующим образом:

 Middleware ('auth:'); here // should be replaced by any parameter that the user wants to pass.

// Method 2 (Through a controller)
use Illuminate\Http\Request;

class ForumController extends Controller
{

    public function __construct(){
        $this->middleware('auth:');
    }
  }

Разделяя каждый параметр запятыми, в промежуточное программное обеспечение можно передать несколько параметров.

 Middleware ('auth:, , '); //, ,  should be replaced by any parameters that users want to pass.

Эти параметры $next Функция обработчика передается в промежуточное программное обеспечение после переменной

резюме

Чтобы создать промежуточное программное обеспечение, выполните следующие действия

  • Создайте промежуточное ПО с помощью команды artisan PHP artisan make: имя промежуточного ПО промежуточного ПО .
  • Зарегистрируйте промежуточное программное обеспечение в kernel.php в папке app_Http
  • Написание логики в созданном промежуточном программном обеспечении
  • Назначение промежуточного программного обеспечения для маршрутизации или контроллера

Вывод

Промежуточное программное обеспечение Laravel может легче защитить вашу маршрутизацию, фильтровать входные данные и выполнять множество других задач, не создавая так много логики. Ознакомьтесь с официальной документацией Laravel для получения дополнительных возможностей промежуточного программного обеспечения и, самое главное, упражнений.

От: https://learnku.com/laravel/t…

Другие статьи: https://learnku.com/laravel/c…

Оригинал: “https://developpaper.com/tutorial-vernacular-laravel-middleware/”