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

Зарегистрировать промежуточное ПО в Laravel очень просто:

просто перечислите класс промежуточного программного обеспечения в свойстве $middleware вашего класса app/Http/Kernel.php.

or

Если вы хотите назначить промежуточное программное обеспечение для определенных маршрутов, вы должны сначала назначить промежуточное программное обеспечение сокращенным ключом в вашем файле app/Http/Kernel.php.

Но как это сделать в плагине OctoberCMS? Предполагается ли использовать "Маршрутизация и инициализация" вместо Kernel.php для регистрации промежуточное ПО? Если нет, то где плагин может зарегистрировать свое промежуточное ПО?


person B Faley    schedule 29.04.2016    source источник


Ответы (4)


Как упоминалось в документации, вы можете расширить класс контроллера внутри метода загрузки. вашего plugin.php ;

public function boot()
{

    // Extend Controller Class
    \Cms\Classes\CmsController::extend(function($controller) {
        $controller->middleware('Middleware\Path..');
    });


    // OR Push it directly to the Kernel

      // prependMiddleware : Add a new middleware to beginning of the stack.
     $this->app['Illuminate\Contracts\Http\Kernel']
        ->prependMiddleware('Middleware\Path..');

     // pushMiddleware : Add a new middleware to end of the stack.
     $this->app['Illuminate\Contracts\Http\Kernel']
        ->pushMiddleware('Middleware\Path..');

}

Также вы можете добавить его в routes.php файл вашего плагина:

Route::group(['prefix' => 'foo'], function () {

        Route::get('{slug}', function($slug){

           ....

        })->where('slug', '(.*)?')->middleware('Path\To\Middleware');
});
person Raja Khoury    schedule 07.02.2017

Я заработал, используя опцию «промежуточного программного обеспечения» с полным именем класса с группой маршрутов в моих плагинах route.php

Route::group(['middleware' => '\Namespace\ABC123\AuthMiddleware'], function(){
person Steven Briscoe    schedule 19.05.2016

Использовать это

Cms\Classes\CmsController::extend(function($controller) {
$controller->middleware('your middleware here');
});
person mosid    schedule 28.05.2016

Вы должны указать класс промежуточного программного обеспечения

$middleware property

класса Kernel.php.

person Vincent P.    schedule 01.05.2016