[TOC] > [thinkphp 6](https://www.kancloud.cn/manual/thinkphp6_0/1037479) ## 查看所有 think 命名 `php think list` ## 开启调试模式 根目录的`.example..env`改为`.env`文件 ## Facade 使类无需实例化而直接进行静态方式调用 > [参考](https://www.kancloud.cn/manual/thinkphp6_0/1037491) 注意事项, 此时的facade 无法被 IDE 识别,可通过注释方法识别 ``` /** * @method string hello(string $name) static 读取缓存并删除 */ class Test extends Facade{ ``` 就可以识别函数 若想静态调用系统函数,使用`think\facade\xxx` 的命名空间 ## 多应用模式 ``` ├─app 应用目录 │ ├─index 主应用 │ │ ├─controller 控制器目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─admin 后台应用 │ │ ├─controller 控制器目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─public WEB目录(对外访问目录) │ ├─admin.php 后台入口文件 │ ├─index.php 入口文件 │ ├─config 应用配置目录 │ ├─index index应用配置 │ └─admin admin应用配置 │ ├─route 路由定义目录 │ ├─index index应用路由定义目录 │ └─admin admin应用路由定义目录 │ ├─runtime 运行时目录 │ ├─index index应用运行时目录 │ └─admin admin应用运行时目录 ``` 1. 开启多应用 `config/app.php` ``` 'auto_multi_app' => true, 'default_app' => 'index', //指定默认模块 ``` ### 禁止应用访问 `'deny_app_list' => ['common'] ` ### 自动生成应用 把`build.php`文件放到app目录下执行 `php think build 应用名` ## 中间件 1. 生成中间件 `php think make:middleware Check ` 2.设置中间件 ``` class InAppCheck { public function handle($request, \Closure $next) { if (preg_match('~micromessenger~i', $request->header('user-agent'))) { $request->InApp = 'WeChat'; } else if (preg_match('~alipay~i', $request->header('user-agent'))) { $request->InApp = 'Alipay'; } return $next($request); } } ``` 3.应用中间件 ``` //在对应的 middleware.php return [ app\middleware\InAppCheck::class, ]; ``` 或者路由中间件 ``` Route::rule('hello/:name','hello') ->middleware([\app\middleware\Auth::class]); ``` ## 路由 ### 变量规则 自定义默认的规则 `'default_route_pattern' => '[\w\-]+', ` 局部变量 ``` Route::get('new/:name', 'News/read') ->pattern(['name' => '[\w|\-]+']); ``` 全局变量规则 ``` Route::pattern([ 'name' => '\w+', 'id' => '\d+', ]); ```