php 数据库访问类(模型 Model) v1.1

# 规范

使用模型封装所有数据库操作(读和写),模型使用类(class)的形式进行定义。
除模型外,禁止通过 $db 类直接访问数据库。

一个模块的模型放在 model/ 目录内。模型以数据表作为粒度,则一个模型原则上只负责一个表的操作,模型又按操作类型分成读与写两类。

操作类型体现在命名前序上,使用 r_ 表示读, w_ 表示写。类名与源代码文件名都使用前序进行分类。

模型类名及文件名的命名主要参考数据表名,并去除表名中共同有的前序。

如:

数据库中有一数据表:phpcms2008_selepro_projectinfo
属于 selepro 模块的数据表,因此 phpcms2008_selepro_ 皆为表前序,表名中有意义的部份是 projectinfo 。
所以,模型定义如下:

model/r_projectinfo.class.php
model/w_projectinfo.class.php

r_projectinfo.class.php 为封装了对 projectinfo 表读操作的模型,类名为 r_selepro_projectinfo ,可见,类名需要加上模块名(selepro)作为前序。

w_projectinfo.class.php 为封装了对 projectinfo 表写操作的模型,类名为 w_selepro_projectinfo 。

# 加载


模型类使用 loadm() 函数加载及实例化,不在控制器中直接包含及 new 。
loadm 调用方法是:loadm('mod_name', 'model_file_name')。
eg. loadm('phpcms', 'r_projectinfo')
第一个参数为模型所属模块名,第二个参数为模型类定义文件名(不含 .class.php 部份)。
两个参数都使用单引号定义的字符串,分隔参数的逗号后跟一个空格,在需要查找某个模型被哪些地方调用时可以方便地查找出来。
否则调用格式不统一,无法通过简单的字符串搜索把一个模型的调用位置找出来。

# 实例变量名


读类型的模型使用 omr_ 前序,写类型的用 omw_ 前序。其中 o(obj)m(model)r(read)。
后跟模块名的前三个字母,再跟模型文件名各部份的前三个字母:
eg.
/selepro/model/r_projectinfo.class.php -> $omr_sel_pro
(其中 omr_ 为前序,sel 为模块名,pro 为模型文件名)
/selepro/model/w_material_info.class.php -> $omw_sel_mat_inf
完整的实例化语句为:
$omw_sel_mat_inf = loadm('selepro', 'w_material_info');
统一实例变量名后,当需要查找一个模型在哪些地方被使用到,一个模型的一个方法在哪些地方被调用时,可以通过简单的字符串搜索把调用位置找出来。

# 作用


把原本写得到处都是的数据库访问代码集中到一块,可以在一定程度上提高代码质量。
以团队的角度来说,因为所有数据库访问代码都住中到了一块,可以更方便地管理。
又因为数据库查询语句都是集中在一块,在需要对数据库进行优行分析将更方便,不需要在源代码的各处找各条查询语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值