手册 >> 数据模型 >> 业务数据封装

业务数据封装

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

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

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

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

  1. 当业务逻辑非常复杂,不能直接通过spModel的操作来实现的功能,为了控制器端清晰和更有条理,可以考虑将这些业务操作封装起来。
  2. 在整个应用程序中,使用得比较多的功能,如在create操作中填充当前时间的字段,update操作中填充更新时间的字段等的时候,可以考虑覆盖spModel的create和update等操作(继承),加入这些功能。
  3. 当业务逻辑经常被重用的时候,如用户登录验证、注册写入等操作的时候,可以考虑封装,以便在第二个应用程序中复用。
  4. 在SpeedPHP框架的优化建议中,在经常使用到的业务逻辑中(如首页多分类前十文章显示),可以考虑将其封装起来,以便spCache(函数缓存器)进行优化的缓存。

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