ThinkPHP源码阅读1-------访问流程
admin
2023-07-03 04:43:28
0

        ThinkPHP访问流程在手册1.11系统流程里就有介绍,我阅读的ThinkPHP的版本是3.1.3,大家可以看下手册,基本的流程也有,现在就是详细去介绍一下ThinkPHP的访问流程.(调试模式下的,在部署模式下,会把中间的URL解析,文件加载之类的,都封装到一个文件里)

        1.入口文件(index.php)

        入口文件最常见得就是index.php,而在这里可以定义项目名称,路径,缓存文件存放路径之类的.最后要加载Thinkphp/ThinkPHP.php

       指向下一个文件的地方是require 'ThinkPHP/ThinkPHP.php';

        2.ThinkPHP/ThinkPHP.php

        这个文件定义基本的系统目录常量,框架引擎判断,以及部署模式和调试模式的判断

        指向下一个文件的地方是 require THINK_PATH.'Common/runtime.php';

        3.runtime.php(~runtime.php)

        PHP环境判断,URL定义,项目目录常量定义,核心文件加载,项目目录生成.

        指向下一个文件的地方是Think::Start();

        4.Think.class.php

        错误方式定义,异常定义,设置自动加载,缓存配置参数,语言参数等

        App::run();

        5.App.class.php

        设置时区,加载动态的项目公共文件和配置文件,一些系统常量的定义,如(IS_POST)等,POST,GET等传值过滤,

        指向下一个文件的地方是Dispatcher::dispatch();在App.class.php的第38行

        6.Dispatcher.class.php

        URL解析,获取分组,模块,操作名,包括URL四种方式的详细定义,URL路由都在这里定义的.

        解析完成以后回到App.class.php并且执行App.exec

        7.App.class.php   App::exec

        执行应用程序,包括前置和后置操作执行,当前方法执行,以及空模块判断,(如IndexAction.class.php等,就会在这里直接执行)

        在执行IndexAction.class.php的时候,有extends继承Action.class.php

        8.Action.class.php基类

         实例化视图类 赋值,传值给View,获取Action,ajax判断,这里面的方法很多,值得仔细研究下.

        在调用assign,display,show等方法的时候,会到View中操作.

        9.View.class.php 视图类

         包括获取IndexAction.class.php中定义的变量,以及解析模板,输出模板等功能

       执行下一文件的方法  tag('view_parse',$params);在View.class.php View::fetch的方法中.

       10.  ParseTemplateBehavior.class.php   模板解析

          其实是对缓存的判断以及对采用哪种模板引擎去解析模板.

       在$tpl = Think::instance('ThinkTemplate');     在第62行

       11. ThinkTemplate.class.php     ThinkPHP的模板解析类

          这里才是真正得模板解析,包括对系统标签的解析,以及对自定义标签的判断,解析完成以后直接放入缓存然后include 


ThinkPHP源码阅读1-------访问流程

相关内容

热门资讯

危急时刻,退役军人冲进车流救人 极目新闻通讯员 常梦星 游小亮5月30日中午12时许,武汉市武商商圈附近发生一起两辆电动车正面相撞的...
清华硕士做纹眉师1年多,最高月... 拥有中国传媒大学本科学历、清华大学美术学院硕士学位的广州90后Yoyo,如今是一名专业纹眉师。这份看...
“背手负鼠”火了,网友到处寻图... 这几天,很多人的聊天软件都被一个外形有点像老鼠的动物“承包”了。只见它面对窗外幽蓝的天空,负手而立,...
SpaceX被曝估值下调,马斯... 据美国彭博社29日援引知情人士的话报道,美国太空探索技术公司(SpaceX)正寻求在其首次公开募股(...
郑丽文横跨五大城访美,谢寒冰乐... 中国国民党主席郑丽文将于6月1日启程访问美国,由西向东横跨旧金山、纽约、波士顿、华府及洛杉矶等五大城...
视频丨首次突破、刷新纪录!本周... 本周我国在航天、基建、工程等领域迎来突破从地下到太空从大国重器到汽车工业中国硬核实力接连刷新历史神舟...
上海“僵尸房”复活记:卖不掉的... 在房地产从业者的行话里,有一个并不正式却颇为形象的词——“僵尸房”。没有人能给出它的准确定义,更没人...
网红“悍马糖”被查 近日,据江苏南京《金陵警事》报道:看似普通糖果,号称“增强精力”,实则暗藏致命风险。南京秦淮警方成功...
灶具打不着火原因 1、如果灶具进入了过压保护的时候,灶具是不会打火启动的,所以这样就会导致灶具打不着火的问题发生。2、...
灶一边打不着火 1、可能是由于一边的打火针上面比较脏,出现点火针跑偏的现象。2、也有可能是由于打火的时候,打不着火的...