2017年8月23日 上午10:57
TP中的一个特点
TP执行过程中很大部分都是环境的配置,这里要组织各种不同位置、不同作用的文件。那么,如何组织他们之间的工作其实也是一个大工程,就好像一个公司,boss需要思考自己需要哪些职位、各个职位他们之间如何协作、如何调节他们之间的关系、出现冲突如何处理、如何处理人员的流动(CBD模式)
这个的环境配置不仅仅是各种数组配置文件(define,static)
还有各种类加载(include),类加载之后是为了可以直接使用他们的方法
这里说是为了说明方法的来源,我以前目光里只有配置文件
TP中函数的特点、及它引出的深层思考
TP中单个函数却要执行多个功能,这中情况还不少
这就导致的他的函数会有很多的判断,这样不仅加大了自己设计代码时的难度,让读的人也不舒服
但是,这样做的好处就是让上层使用更加方便
各有利弊吧
还有另一种情形:
就是其实功能说起来也很简单,让我实现的话也觉得不难
但是,当你去看他函数写的实现过程时,各种判断,绕来绕去,觉得麻烦
当然,这样麻烦不是由于人家水平不行,而是由于要站在一个框架的高度去思考,它自然就复杂了
我们思考的时候都是单一情景下的,而框架中的情景太多,那么,自然会让一个功能的实现过程变得复杂,需要各种判断、处理
这就是框架设计者设计的核心,在开工之前需要进行严密的思考。
理清各种情景,各种情景之间的关系
这也是各个框架最不同、最有价值的地方
像老师说的看一个string类等是怎样实现的,这些其实都是框架的皮毛了
最后:看框架的人,最高境界就是能理清楚上面说的,能够画出他们之间的逻辑关系图
到现在为止我就把TP一个应用的启动过程看完了,没完成的有
- TP的core代码,在Library/Think目录下的那些.php文件
- 我只粗略的看了看Hook.class.php,Dispatcher.class.php
- 在 ThinkPHP源码分析-2中关于View的一些东西我没有看,这个其实很关键的,但是没时间了
