SpeedPHP/业务数据封装

来自站长百科
跳转至: 导航、​ 搜索

SpeedPHP | 快速入门 | 访问交互 | 数据操作 | 框架概述 | 模板引擎 | 优化加速 | 开发指南 | 数据模型 | API参考

数据库高级开发中,我们可以通过“封装业务数据”来增强应用程序的扩展性和重用性。

业务数据封装[ ]

封装业务数据是将部分常用的、复杂的数据运算封装到spModel的子类(数据模型类)中,从而达到以下多个目的:

  • 减轻控制器代码量,使得用户与系统交互过程更清晰。
  • 复用代码,应用系统的“业务”是“领域通用”的,一次编写可以在多处使用,甚至是移植到第二个系统中使用。
  • 架构清晰,有利于快速开发。
  • 分工明确,可以分配专人负责开发并维护业务代码,架构设计者只需要规范接口数据即可。
  • 编程过程和二次开发中,出现问题将很轻易可以定位(业务逻辑问题或交互问题),从而增强应用程序健壮性。
  • 易于维护,业务逻辑升级将只需要保持类库接口的兼容性,即可不做过多的工作可以升级到新版本。
  • 开发人员认知一致,不会因为系统交互的修改(控制器范畴)而失去对业务逻辑的把握。
  • 业务迭代性强,开发者只需要知道接口的使用方式而不需要考虑业务实现细节即可完成工作。

spModel模型类[ ]

SpeedPHP框架中,spModel模型类是第一层的业务封装,spModel封装了大部分日常对数据库的直接操作,使得开发者可以直接调用这些封装的业务。所以,在大多数情况下,spModel的子类(模型类)都不需要进行封装。

可以考虑封装业务数据的情况:

1.当业务逻辑非常复杂,不能直接通过spModel的操作来实现的功能,为了控制器端清晰和更有条理,可以考虑将这些业务操作封装起来。

2.在整个应用程序中,使用得比较多的功能,如在create操作中填充当前时间的字段,update操作中填充更新时间的字段等的时候,可以考虑覆盖spModel的create和update等操作(继承),加入这些功能。

3.当业务逻辑经常被重用的时候,如用户登录验证、注册写入等操作的时候,可以考虑封装,以便在第二个应用程序中复用。

4.在SpeedPHP框架的优化建议中,在经常使用到的业务逻辑中(如首页多分类前十文章显示),可以考虑将其封装起来,以便spCache(函数缓存器)进行优化的缓存。

在SpeedPHP框架的扩展中,业务封装也同样重要。在上面提到的“当业务逻辑经常被重用的时候可考虑封装”,就是扩展类业务封装的主旨,扩展类实际上就是一些供开发者多次重用的代码片段。

参考来源[ ]

http://speedphp.com/manual.html

SpeedPHP使用手册导航

快速入门

开始使用SpeedPHP | 制作留言本 | 简便的数据表操作 | 用Smarty来显示页面

访问交互

入口文件 | 控制器架构 | 网址生成与PATH_INFO | 获取提交数据 | URLRewrite伪静态 | 自定义伪静态URL | 几种跳转 | 多语言实现 | 权限控制 | session、cookie | Ajax应用

数据操作

编写数据模型类 | 常规操作CRUD | 安全过滤 | 简化操作spDB | 数据变量存储 | 缓存配置

框架概述

单入口应用程序 | 架构设计 | 第三方类库及扩展功能 | UTF8编码与GBK版本 | SAE云计算版

模板引擎

模板引擎配置 | 使用Smarty | Smarty开发教程 | 自动显示模板| speedy教程 | 为什么使用模板其常见问题 | 模板包含文件 | 注册函数 | 全局变量赋值 | CSS和JS的路径

优化加速

生成静态HTML概述 | 生成HTML的使用 | 分页 | 高效函数缓存器| 模板引擎缓存

开发指南

核心函数 | 格式输出变量调试dump | 载入包含文件import | 类实例化函数spClass | 开发流程 | 目录结构、路径设置 | 大规模系统部署 | 用户自定义及全局操作 | 自定义函数库 | 自定义类库 | 自定义404页面 | 程序调试dump变量调试安全建议及命名建议

数据模型

高级数据库操作 | 数据表一对一关联 | 数据表一对多关联 | 数据表多对多关联 | 一表关联多表 | 关联结果的条件限制 | 关联结果在Smarty模板中显示 | 多数据库、数据表 | 多种类型数据库的配置 | 重写CRUD操作| 业务数据封装 | 数据函数复合调用

API参考

spModel数据库操作类 | spPager分页类 | spVerifier数据验证类 | spCache函数数据缓存类 | spLinker数据表关联实现类 | spView视图类 | spHtml静态HTML生成类 | spController控制器类 | spArgs环境参数类 | 配置 | 数据库驱动类 | 模板驱动类 | import载入文件