2017年8月21日 上午11:37
反思1
- Tp源码中一个函数看似看挺长,其实目的很简单
- 长的原因是是要处理多种情况
- 上层设计中,让一个功能呢有多种操作方式,那么,下层对于每种方式都要做好适配
- 不同的操作环境
反思2
- 一个类定义的变量/函数都是static的
- 大量的使用static来维持自己的阶段性成果
- 随着程序的执行static变量不断的扩充
- 其实都属于Thinkphp_3.2.3/index.php 这个作用域
- 这个回答的为啥autoload()函数只定义在了think.class.php中,但是却可以让自己的项目实现自动加载
- Include/require 引入另一个php文件+执行代码
- Include/require 包含进来的php程序,可以直接使用上文中的变量
- include/require 可以理解直接剪贴过来了
反思3
- Think.class.php
- 这时候还没有真正的跑起来项目,还是在做它运行需要的准备工作
- 主要作用:
- 加载各种配置文件(都是return 数组),将他们变成static变量
- 由于TP要实现,同一功能根据不同的情景,采取不同的配置方法
- 所以,这里的配置文件的加载步骤比较繁琐
- 重写php本身的函数,自动加载类库、异常处理、错误处理等
- 这些功能的实现php本身就有很好的辅助函数
- 这就可以很方便的实现上面的功能
- 加载各种配置文件(都是return 数组),将他们变成static变量
- 阅读框架,依靠
- 了解业务
- 语言功底
- TP这个框架思想其实比较简单,在这个过程中锻炼的是自己对语言本身的理解。
- 结论:框架学习过程中觉得难,并不是框架的作者发明了多少让人难以理解的代码过程,一定是由于自己:
- 业务本身不了解, 跟不上作者的思路。在具体的看之前,就要脑子中知道作者的目的是啥、有啥效果、要考虑啥特殊情况、大概有几个步骤等
- 语言功底中要知道语言本身他又那些特性、这些特性能如何巧用、已经封装好了那些功能、那些没有封装好