如何在octobercms中创建中间件

Posted

技术标签:

【中文标题】如何在octobercms中创建中间件【英文标题】:how to create middleware in octobercms 【发布时间】:2017-04-07 10:51:27 【问题描述】:

我是 OctoberCMS 的新手,但我对 Laravel 有一定的了解。

在 Laravel 中,很容易创建中间件并将多个中间件组合在一起。

在 OctoberCMS 中,我还找不到合适的指南或满意的答案。

有谁知道如何在 OctoberCMS 中创建中间件并将多个中间件分组?

【问题讨论】:

这里是链接可能对你有帮助octobercms.com/forum/post/how-to-enable-cors @DCoder 找不到太多用处,但感谢您抽出宝贵时间 :) 【参考方案1】:

在您的插件文件夹中,使用文件 Plugin.php 来设置您的中间件 您必须像这样在启动函数中声明:

  public function boot()
  
    // Register middleware
     $this->app['Illuminate\Contracts\Http\Kernel']
          ->pushMiddleware('Experty\Experts\Middleware\ExpertsMiddleware');
  

在 ExpertsMiddleware.php 中

<?php namespace Experty\Experts\Middleware;

use Closure;
use Illuminate\Foundation\Application;
use Illuminate\Contracts\Routing\Middleware;
use Illuminate\Http\Response;
use October\Rain\Exception\AjaxException;
use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface;

class ExpertsMiddleware implements Middleware

/**
     * The Laravel Application
     *
     * @var Application
     */
    protected $app;

    /**
     * Create a new middleware instance.
     *
     * @param  Application $app
     * @return void
     */
    public function __construct(Application $app)
    
        $this->app = $app;
    
 /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */

    public function handle($request, Closure $next)
    
      //youre code
     

【讨论】:

“Laravel 5.2 中已弃用 Illuminate\Contracts\Routing\Middleware 合约” ***.com/a/35487715/69537 我收到一个错误:PHP 致命错误:未捕获的 ReflectionException:/Applications/MAMP/htdocs/israplanet.com/vendor/laravel/framework/src/Illuminate 中不存在类 path.storage /Container/Container.php:752

以上是关于如何在octobercms中创建中间件的主要内容,如果未能解决你的问题,请参考以下文章

如何在laravel 5中创建用于XSS防御的中间件?

如何在网络核心Web应用程序中创建任务包装器或中间件?

在 laravel 8 中创建 auth guard 使用中间件

在 Laravel 5.1 中创建 superAdmin 中间件

我需要在 asp.net Core 中创建 XSRF 中间件吗?

是否可以在 ASP.NET Web API 中创建中间件?我参考了网上的资料并尝试过,但没有成功