Зарегистрировать промежуточное ПО в Laravel очень просто:
просто укажите класс промежуточного программного обеспечения в свойстве $ middleware вашего класса app / Http / Kernel.php
Или
Если вы хотите назначить промежуточное программное обеспечение для определенных маршрутов, вы должны сначала назначить промежуточному программному обеспечению короткий ключ в вашем файле app / Http / Kernel.php.
Но как это можно сделать в плагине OctoberCMS? "Маршрутизация и инициализация" предназначена для использования вместо {{X0 }} для регистрации промежуточного программного обеспечения? Если нет, где плагин может зарегистрировать собственное промежуточное ПО?
5 ответов
Как упоминалось в документации, вы можете расширить класс контроллера внутри метода загрузки. вашего 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');
});
Вы должны указать класс промежуточного программного обеспечения
$middleware property
Класса Kernel.php.
Фактически, вы можете добавить промежуточное ПО в обратный вызов своего плагина register
, потому что оно зарегистрировано до того, как произойдет промежуточное ПО.
class YourPlugin extends PluginBase
{
public function register()
{
$kernel = app()->make('Illuminate\Contracts\Http\Kernel');
$kernel->pushMiddleware(YourMiddleWare::class);
}
}
Использовать это
Cms\Classes\CmsController::extend(function($controller) {
$controller->middleware('your middleware here');
});
Я получил его, используя опцию 'middleware' с полностью определенным именем класса с группой Route в моих плагинах routes.php
Route::group(['middleware' => '\Namespace\ABC123\AuthMiddleware'], function(){
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.