1.thinkphp6配置文件详解
2022-11-24 11:10:29
166
{{single.collect_count}}

一,路由怎么配置?

        多应用路由
        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    数据表废弃字段(数组)

    四,分布式数据库配置使用?


    五,中间件怎么使用?

  1. 中间件的作用
  • 主要用于拦截或过滤应用的HTTP请求,并进行必要的业务处理
  1. 中间件的使用步骤
  • 第一步:生成中间件文件,定义中间件
  • 第二步:在全局配置文件中定义中间件别名(可省略)
  • 第三步:注册中间件(全局、应用、路由、控制器中间件)

    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

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}