phpmvc流程图,TP执⾏流程详解
># TP执⾏流程详解
#### TP执⾏流程
我查看了TP的核⼼源码,下⾯是我对TP执⾏的⼀些理解(从⼊⼝开始,只是⼀个⼤概流程):
php文件管理系统mvc 源码1. ⼊⼝⽂件:
单⼊⼝⽂件,⾥⾯包含TP的⼊⼝⽂件,``require './ThinkPHP/ThinkPHP.php';
有多个模块的话也可以定义多个⼊⼝,(⽐如对于后台模块,再新建⼀个admin.php)
2.TP⼊⼝⽂件ThinkPHP.php
1. 记录运⾏时间(钩⼦),⽤于输出⽇志和调试,个⼈认为没什么⽤.........
2. 定义系统常量:URL模式、类⽂件后缀、当前⽂件⽬录、系统运⾏⽬录、是否调试模式、缓存⽬录、模版⽬录、配置⽂件⽬录....等等,然后引⼊核⼼Think类``Think.class.php`` ,引⼊后执⾏这个类中的start函数
3.Think.class.php类以及start函数
1.在start函数中,先定义注册函数,然后定义错误和异常处理函数(spl_autoload_register⽤于⾃动加载未加载的
类,register_shutdown_function定义PHP程序执⾏完成后执⾏的函数,set_exception_handler是⾃定义异常处理函数,这三个函数的参数都是⼀个⽅法名,当⾃动加载、执⾏完成、出现异常的时候,将⽤这⾥⾯传的⽅法参数代替php原本的处理机制,⽐如
set_exception_handler('Think\Think::appException'); 出现异常的时候会调⽤appException函数,⽽不是PHP原⽣的异常处理函数)
2.加载各种⽂件:核⼼⽂件、配置⽂件、模式别名定义、模式⾏为定义等
3.设置系统时区
4.调⽤App类中的run⽅法
5.这个类中的其他函数就是在第⼀步中说到的⾃定义加载、处理函数,(⾃定义加载中⽤到了类名映射,就是从当前url中解析出模块名、控制器名、⽅法名,)
4.App类以及run函数
1.run函数中先执⾏监听(钩⼦类中的)函数监听init⽅法
2.执⾏init⽅法(加载动态配置、安全过滤等);
3.再执⾏钩⼦类监听函数,监听begin⽅法,设置session,获得到应⽤执⾏时间
4.执⾏exec函数(去寻从url中解析出的类,并将其实例化后调⽤⽅法,输出结果)
5.执⾏监听函数监听end函数(应⽤结束);
这样整个执⾏流程就完毕了 ,我看了好⼏天...挺难懂的,⽽且我觉得TP中要动态加载的类太多了,对于中⼩型⽹站来说,⽤不上,反⽽影响运⾏速度,然后我把这个执⾏流程⾥⾯⽐较重要的部分挑出来,写进了我的框架中,⾥⾯的⼤部分函数名与TP相同,但是完全是我⾃⼰⽤代码实现的,并没有⽤TP的思路。下⼀章会详细讲解我⾃⼰理解的MVC框架及思路。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论