一,路由怎么配置?
多应用路由
1.应用里的路由
在对应的应用里创建路由,如index应用则app\index\route\file_name.php
Route::rule('路由名', '类文件名/方法名');
http://域名/index.php/应用名/路由名
2.全局路由
在app\route\file_name.php
全局路由分配到多应用里
Route::rule('路由名', '\app\应用名\controller\类文件名@方法名');
http://域名/index.php/路由名
二,Trace调试怎么配置?
安装 composer require topthink/think-trace
.env 配置 APP_DEBUG = true
三,怎么创建使用model?
<?php
namespace app\model;
use think\Model;
class User extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user';
// 设置当前模型的数据库连接
protected $connection = 'db_config';
// 模型初始化 init必须是静态方法,并且只在第一次实例化的时候执行,并且只会执行一次
protected static function init()
{
//TODO:初始化内容
}
}
常用的模型设置属性包括(以下属性都不是必须设置):
属性 描述
name 模型名(相当于不带数据表前后缀的表名,默认为当前模型类名)
table 数据表名(默认自动获取)
suffix 数据表后缀(默认为空)
pk 主键名(默认为id)
connection 数据库连接(默认读取数据库配置)
query 模型使用的查询类名称
field 模型允许写入的字段列表(数组)
schema 模型对应数据表字段及类型
type 模型需要自动转换的字段及类型
strict 是否严格区分字段大小写(默认为true)
disuse 数据表废弃字段(数组)
四,分布式数据库配置使用?
五,中间件怎么使用?
- 中间件的作用
- 主要用于拦截或过滤应用的
HTTP
请求,并进行必要的业务处理
- 中间件的使用步骤
- 第一步:生成中间件文件,定义中间件
- 第二步:在全局配置文件中定义中间件别名(可省略)
- 第三步:注册中间件(全局、应用、路由、控制器中间件)
3. 通过命令行指令快速生成中间件
- php think make:middleware Check #这个指令会"app/middleware"目录下面生成一个"Check"中间件。
中间件的入口执行方法必须是 "handle" 方法,而且第一个参数是 "Request" 对象,第二个参数是一个闭包<?phpnamespace app\middleware;class Check{public function handle($request, \Closure $next){if ($request->param('name') == 'think') {return redirect('index/think');}return $next($request);}}
4.注册控制器中间件
- 控制器中间件必须使用中间件别名
- 在控制器中定义middleware属性
<?phpnamespace app\controller;class Index{// 注册控制器中间件protected $middleware = [// 对所有方法有效'auth',// 仅对hello方法和world方法有效'check' => ['only' => ['hello', 'world']],// 仅对create方法和save方法无效'check' => ['except' => ['create', 'save']],];}
https://www.kancloud.cn/monday/thinkphp6/1441353
六,事件是什么,怎么使用?
七,容器是什么,怎么使用?
八,门面是什么,怎么使用?
九,服务是什么,怎么使用?
十,源码分析
十一,异常捕捉
try { file_get_contents('filename'); throw new Exception('我是手动抛出来的');} catch (\Exception $e) { // 这是进行异常捕获 return $e->getMessage();}
十二,其他
thinkphp6 swoole扩展http跨域补丁
/*跨域补丁开始*/$origin = isset($req->header['referer']) ? $req->header['origin'] : '';$allow_origin = array( //允许跨域的域名'http://localhost','http://localhost:8080','http://localhost:8081',);if(in_array($origin, $allow_origin)){//动态允许跨域$header['Access-Control-Allow-Origin'] = $origin;$header['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Token';$header['Access-Control-Allow-Methods'] = 'GET,POST,PUT,DELETE,OPTIONS';$header['Access-Control-Allow-Credentials'] = 'true';$response->header($header);}/*跨域补丁结束*/
ORM关联查询一对一生成单条sql执行
withJoin