同福

做个web框架(7)——模型Model(一)模型基础知识【20201030】

介绍

介绍

今天福哥要带着童鞋们设计TFPHP的模型模块TFModel对象的设计,模型模块的职能就是对数据进行存储和读取,存储数据都是在一些外部介质上进行的,诸如:数据库,文件,内存等等。也就是说,模型模块需要连接这些外部介质的能力,说直白些就是模型模块需要可以连接MySQL,可以连接Redis,可以连接ElasticSearch等等外部引擎,当然也需要可以直接操作文件(虽然这个在现阶段使用场景很少)。

php语言连接数据库是借助PDO扩展的,而我们在TFLinux上安装php的环境的时候就已经把PDO扩展安装好了,所以童鞋们不需要再捣鼓一遍了。

php语言连接Redis引擎也是使用外部扩展的,这个扩展我们在TFLinux上安装php的环境的时候也已经为大家安装好了,福哥贴心吧?

这里我们的TFPHP的模型模块TFModel对象只实现对于PDO扩展的支持,其他的介质我们以后再陆续添加。

PDO扩展

PDO是PHP Data Objects的简写,意欲将php操作所有外部介质的方法全部囊括进来,提供一个集中的解决方案。虽然PDO的出发点的好的,但是并不是所有的外部介质引擎都会乐意把自己加入到PDO联盟里面。不过PDO解决了早期版本的php在连接MySQL、Oracle等等数据库引擎的时候需要引用不通的php扩展的问题了。

实体对象

实体对象就是Entity,所谓的实体对象就是指在根据MVC模式设计的程序当中,那些不同的视图里面的各式各样的展示效果,需要将我们的原始数据进行各种各种的数据组合,而这些组合并不便于记忆也不便于使用,为了提高可编程度,我们为这些数据的组合逐一起了一个名字,把它们封装成为一个一个的只有属性没有方法的数据对象,这些数据对象就称之为实体对象。

模型

我们了解了模型模块的一些基础知识之后,就知道了设计模型模块就需要有各种各样的介质的连接处理能力。除此之外,模型模块还要有生成各种各样的实体对象的能力。

有了模型模块之后,我们就可以根据我们的系统结构建立各种各样的模型对象了。

模型模块

模型模块对象Model/TFModel,程序文件名称保存为TFModel.inc.php。在这个程序文件里面我们将要实现一个模块对象需要的全部基础属性和功能。

6abf91725e359f81.jpg

4. 总结

今天福哥带着大家将模型模块TFModel的功能详细地设计了一番,大家发现了一个问题就是模型模块需要有连接数据库的能力,所以在实现模型模块之前我们需要先实现连接数据库的对象,福哥会基于PDO扩展封装一个新对象TFDO里面。

下一课,福哥先要带着大家实现基于PDO扩展的用于操作各种数据库的新对象TFDO,童鞋们不要掉队了哦~~

5. P.S.

微信公众号的文章发出去之后是不能编辑的,但是福哥偶尔会修复一些描述不到位、示例不正确、结构不清晰等等的文章错误,这些只能在网站上才能看到最新版本内容,望大家知晓~~