thinkphp3.1.3源码分析(1)
总是看见太多的Thinkphp的应用实例,CURD实在做得没有什么太大的意义,不甘心仅停留于表面的同学可以一起分析下Thinkphp的源代码。怎么在虚拟机中用Thinkphp搭建一个应用,不是我们讨论的话题,下面直接从框架说起。
方法/步骤
-
index.php引用Thinkphp/Thinkphp.php了,Thinkphp.php定义基础的常量,然后包含下面的Common/runtime.php
-
runtime.php定义大量的常量,创建项目的各种目录。引入核心文件。最后运行Think::Start();
-
这样就引入了/Thinkphp/Lib/Core/Thinkphp.class.php
做程序初始化
通过 静态方法 start()完成初始化。
其中的
register_shutdown_function(array('Think','fatalError'));
set_error_handler(array('Think','appError'));
set_exception_handler(array('Think','appException'));
spl_autoload_register(array('Think', 'autoload'));
四个方法对我们来说比较陌生。查了手册,传入数据的方式手册上也没有看到,百度查询了下,原来是:
通过数组的形式传递类和方法,元素一为类名称、元素二为方法名称(方法为静态方法)
查看当前THink类里面的 fatalError等都是静态方法,发现的确都是静态方法。