关于thinkPHP的路由(二)

接上篇。但是这次希望从框架的角度来尝试认识路由认识URL及认识框架。

 所有请求都是从入口文件开始的。这是共识。

   在thinkPHP 5.0.24 入口文件如下:

关于thinkPHP的路由(二)

  加载框架引导文件: start.php 

                                 关于thinkPHP的路由(二)

         首先 加载基础文件 base.php

         然后 执行应用。

         所以 :真正的"顺序"              base.php ===> start.php===>index.php

         base.php 

          首先是定义系统关键常量。

          // 载入Loader类
        require CORE_PATH . 'Loader.php'; 主要是实现自动加载。

        // 注册自动加载
         \think\Loader::register();

           // 注册错误和异常处理机制
          \think\Error::register();

           // 加载惯例配置文件
          \think\Config::set(include THINK_PATH . 'convention' . EXT);

  2. 执行应用
      App::run()->send();

      这是整个框架的核心。当我执行一个请求的时候,走过前几步之后,来到App.php。

      run方法以请求对象Request作为参数。返回一个 Response对象。

     然后由这个对象去调用send()方法。即发送数据到客户端。

关于thinkPHP的路由(二)

     这时,整个程序的生命周期就结束了。

     所以核心  就是 app.php 和 request.php  这两个文件。

       因为请求(request)是整个程序的动力(驱动)。处理请求(app)自然非常重要。

      关于thinkPHP的路由(二)

       Request.php 通过instance方法巧妙的返回自己的实例对象。

         接着加载配置文件,initCommon()初始化应用。

关于thinkPHP的路由(二)

   这里 判断有没有定义    BIND_MODULE 就是上一篇说的在入口文件加入绑定入口文件的那句。

  最麻烦的URL      URL/index.php/index/index/index

   如果开启支持多模块,且绑定了入口 BIND_MODULE  即以:  URL/index.php/index/index  来访问(省略了一个index)

   如果要index.php也隐藏。 就是 隐藏入口文件 不在代码范围内了。