0%

ThinkPHP源码分析-1

2017年8月17日 上午10:04

参考我的文章 看第三方开源组件的技巧(第二版)
后来还发现了:小拿大魔王 - 简书

这节主要是看源码思路的数理,准备阶段

和数学的学习过程有啥联系、区别、可以借鉴的、改进

  1. 如何对付难点
  2. 什么状态适合学习
  3. 要树立多遍的概念
  4. 最后一定要有所谓生活化的理解结论

心中疑惑记录

  1. 普通应用模式之外的应用模式
  2. 先弄懂业务逻辑是最核心的
    1. 知道一个功能他设计的原因,目的,作用
    2. 一个概念他设计的目的,原因,作用
      1. 第一遍很难理解这么深,都是摸着石头过河,其实是比较痛苦,并且最后的结论有可能不正确
      2. 这就和多遍学习的重要性

看框架思路清理

  1. 原来第一遍看TP手册的时候,是站在框架使用者的角度去思考的,目的是学会如何使用框架;现在是站在框架设计者的角度与思考,要弄明白设计者的目的、原因、作用。
  2. 第一步一定是要弄懂整个框架设计的业务流,也就是作者在没动笔之前,对系统的设想,这个设想其实要具体到每一个小模块。
  3. 然后,逐渐发现框架的设计有一个核心共通的特性:通过配置字符串去控制框架的各个功能
  4. 这个就类似于 我做的权限系统
  5. 但是,不得不说在一个框架中有太多的让使用这方便使用,但是实现起来却很难为特点的功能。时间有限,不能能全看,只能挑几个自己感兴趣的去看

对学习新的框架的启示

现在回过头来看框架,站在使用者的角度,我们也可以使用以配置字符串(数组)控制框架的角度去学,学习的重点是有哪些配置字符串(数组)、对应的什么功能、如何进行功能的配置这几个方面

站在业务的角度分
站在程序的角度分

摘抄

行为的存在让你无需改动框架和应用,而在外围通过扩展或者配置来改变或者增加一些功能。

而不同的行为之间也具有位置共同性,比如,有些行为的作用位置都是在应用执行前,有些行为都是在模板输出之后,我们把这些行为发生作用的位置称之为标签(位),也可以称之为钩子,当应用程序运行到这个标签的时候,就会被拦截下来,统一执行相关的行为,类似于AOP编程中的“切面”的概念,给某一个标签绑定相关行为就成了一种类AOP编程的思想。

说书对框架的理解

  1. 上面说的是:框架设计者的对于普通项目开发者使用的思考;还要一方面是对于方便框架开发者开发的思考。
  2. 但是,本质来说对于框架的开发者和使用者来说,开发方式其实是一样的
  3. 有以下几种操作方式
    1. 配置数组
    2. 使用字符串
    3. 使用下层函数
  4. 只不过他们之间有着上下层之间的关系:框架的开发者在核心的下层,普通项目开发者在框架开发者下面(金字塔型)
  5. 每层使用上层封装好的操作方式,实现自己的功能,并且要为本层的功能开发下层的使用方式

应用模式