joefallon/phpdatabase

本包包含简单易用的数据库访问层。

v7.0.0 2016-07-20 18:15 UTC

This package is auto-updated.

Last update: 2024-09-25 23:34:15 UTC


README

Joe Fallon编写

这是一个用于MySQL数据库访问的简单库。它具有以下功能:

  • 完整的单元测试套件。
  • 可以集成到任何现有项目中。
  • 只需几分钟就能完全理解。
  • 该库实现了数据映射设计模式(又称表网关)。

安装

使用Composer安装PhpDatabase是最简单的方法。创建以下composer.json文件,然后运行php composer.phar install命令来安装它。

{
    "require": {
        "joefallon/phpdatabase": "*"
    }
}

用法

有四个主要类用于表示数据库中所有关系:

  • AbstractTableGateway
  • AbstractJoinTableGateway
  • PdoFactory

Entities

实体是表示数据库中单行数据的类。所有实体都必须包含一个主键字段,以及可选的创建时间更新时间字段。

  • 主键 - 这是行的主键。可以命名为任何名称。
  • 创建时间 - 这是行创建的日期和时间。可以命名为任何名称。
  • 更新时间 - 这是行最后更新的日期和时间。可以命名为任何名称。

向实体添加额外的数据字段。每个添加到实体的数据字段都应与特定表中的列一一对应。

抽象表网关

使用AbstractTableGateway子类的实例来调解对数据库中表中所有访问。

每个子类必须实现抽象方法mapObjectToArraymapArrayToObject。方法mapObjectToArray用于将实体转换为关联数组。键的名称映射到数据库中的列名。方法mapArrayToObject用于将从数据库中检索到的关联数组转换为对象。

此外,还提供了几个方法来帮助访问数据库。有四个主要方法用于提供数据库的基本CRUD(即创建、检索、更新、删除)访问。以下方法用于提供公共访问:

  • baseCreate($entity)
  • baseRetrieve($id)
  • baseUpdate($entity)
  • baseDelete($id)

抽象连接表网关

AbstractJoinTableGateway类用于调解对连接表(即连接表)的访问。这些表用于表示多对多关系。

PDO工厂

PdoFactory工厂类用于创建PHP PDO对象。

用法

请参阅单元测试以获取如何使用此包的详细示例。