thinkphp在国内的企业当中用的还是比较多的,作为国产的一款比较优秀的框架,还是很有必要的学习一下,自己前段时间看了一下tp的学习手册,但是对于还是没有用thinkphp做过项目的我对它还是很是陌生,于是决定开始用debug模式跟踪一下thinkphp执行的顺序,看它是什么时候执行包含一些配置文件等,对于新手学习一个框架还是很有用的,今天跟踪一下把他记录下来,方便以后的翻阅。

103134425.png

require THINK_PATH.'/ThinkPHP.php';这个是入口文件包含的文件,包含一些必须的函数功能等,跟随这个文件进去

103238965.png


可以从这边看出先查看是否存在runtime.php这个缓存文件,如果存在则直接读取缓存文件,后面的程序不执行,减小服务器开销,如果不存在缓存文件,那么执行加载编译函数文件,我们继续跟踪下去

103507239.png


可以从这个/thinkphp/common/runtime.php文件里面可以看出里面的build_runtime函数开始加载一些核心的函数和核心的编译文件还有一些全局定义常量的文件。另附上/Common/core.php的文件内的内容


104429419.png

这边可看出加载了一些系统核心的文件,那么这个包含文件的答题内容就结束了,下面就是开始run这个函数加载实例了

app.class.php里面的默认加载init的程序初始化里面有一个查看是否编译过的,如果编译过的就直接读取编译好的文件,我们是查看这个框架的执行顺序,所以先把以前编译好的文件先删除了,然后一步步跟踪程序是怎么执行的

104748964.png


这样我们就继续跟踪这个预编译项目的build,值得一说的是zend stdio这个软件还不错,直接按住ctrl+双击就可以直接跟踪,而且里面的一款浏览器插件也是挺不错的,可以直接在上面设置成浏览哪个页面执行一debug执行,方便程序的跟踪和错误的排除。废话不多说,直接跟踪进去

105043168.png

105045663.png
可以从这边看出来,在执行编译的时候开始包含一些次项目的配置文件,由于文章的字数限制,今天就先写到这边,过几天还会记录下一部分的。刚学习thinkphp框架,有不足的地方可以指出,大家一起进步。