zoukankan      html  css  js  c++  java
  • php手记之08-tp5中间件

    01-创建中间件

    php think make:middleware 中间件的名称
    
    这个指令会 application/http/middleware目录下面生成一个中间件文件。

     02-注册中间件三种方式

    方式1-控制器注册  pathinfo,自定义路由不适用

    <?php
    
    namespace appindexcontroller;
    
    use thinkController;
    
    class Middleware extends Controller
    {
        // 控制器的方法,要在pathinfo的情況下才可以,在自定義路由裡不適用
        protected $middleware = ['CkeckLogin'];
        
        public function middle()
        {
            dump('----');
            
            # code...
        }
    }

    方式2--自定义路由 middleware

    //单路由
    Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin');
    
    // 路由组注册中间件
    Route::group(['middleware'=>['CkeckLogin']],function(){
        Route::get('middle','@index/middleware/middle');
    });

    方式3-配置文件注册,配置文件的所在模块的位置内的所有控制器都会调用,每个模块都可以有自己的middleware.php文件

    01-配置文件middleware.php里注册多个中间件的模板引入(传参也可以在这里)

    <?php
    
    return [
        // [apphttpmiddlewareCheckUser::class],
        
        //传单个值
        // [apphttpmiddlewareCheckUser::class,'lili'],
    
        // 传多个值
        [apphttpmiddlewareCheckUser::class,['name'=>'lili','age'=>234]],
        [apphttpmiddlewareCkeckLogin::class,'lili'],
      
    ];

    路由也可以传参

    02-路由里也可以传参
    Route::get('middle','@index/middleware/middle')->middleware('CkeckLogin','lili');
    
    // 路由组注册中间件
    Route::group(['middleware'=>['CkeckLogin']],function(){
        Route::get('middle','@index/middleware/middle');
    });
    
    // 路由组注册中间件并传值1
    Route::group(['prefix'=>'@index/middleware'],function(){
        Route::get('middle','/middle');
    })->middleware('CkeckLogin','libai');
    
    // 路由组注册中间件并传值2
    Route::group(['middleware'=>['CkeckLogin:ksksks']],function(){
        Route::get('middle','@index/middleware/middle');
    });

    控制器里使用(取参使用)

     // $name传值
        public function handle($request, Closure $next,$data)
        {
            echo 'checkuser----'.$data['name'].'---'.'age='.$data['age'];
            return $next($request);
        }
  • 相关阅读:
    排序算法——堆排序 转载
    排序之冒泡排序
    排序之直接插入排序(Straight Insertion Sort)
    浅谈C++之冒泡排序、希尔排序、快速排序、插入排序、堆排序、基数排序性能对比分析
    插入法==冒泡排序
    排序的算法
    排序]
    Linux下zoopkeeper的安装和启动
    Linux下zoopkeeper的安装和启动
    Linux下切换使用两个版本的JDK
  • 原文地址:https://www.cnblogs.com/somethingWithiOS/p/11968549.html
Copyright © 2011-2022 走看看