getrix/objectmodel

ObjectiveModel PHP 包

1.2.0 2018-11-17 13:28 UTC

This package is not auto-updated.

Last update: 2024-09-29 20:02:31 UTC


README

PHP 辅助工具,用于访问数据库中的对象及其集合

警告!该项目目前处于深度私有测试阶段。如果您在意任何优点,请勿使用。

安装

  1. 将此包作为 Composer 依赖项添加
composer require getrix/objectmodel
  1. 定义数据库回调。这是一个存储在 ObjectModel 类的静态属性 $databaseCallback 中的回调函数,应返回一个与数据库链接的 PDO 对象。

 

用法

快速示例

use Getrix\ObjectModel;

Getrix\ObjectModel::setDB(
    new PDO("mysql:dbname=bbass;host=localhost", "user", "password"
);

final class Post extends Getrix\ObjectModel {
  protected static $table = 'Posts';
  protected static $primaryKey = 'id';

  public function __construct(array $row = null) {
    parent::__construct(self::$table, self::$primaryKey,
      [
        "id" => [
          "type" => "integer"
        ],
        "title" => [
          "type" => "string"
        ],
        "text" => [
          "type" => "string"
        ]
      ], $row );
  }
}

$post = Post::getById(1);

var_dump($post);

字段规则

任何使用 ObjectModel 处理的对象都应该有一个模式,该模式描述了数据库中每个数据字段的验证和转换规则。模式应在对象构造函数中定义,例如。

[
    "id" => [
      "type" => "integer"
    ],
    "title" => [
      "type" => "string"
    ],
    "text" => [
      "type" => "string"
    ]
]

 

模式字段属性

 

模式字段类型

版本历史

1.2.0

发布于 2018 年 11 月 17 日

  • 改进 实现了自定义字段类型基类 (ObjectFieldType)
  • 改进 实现了集合的 extractField 方法。
  • 微调 将所有异常文件移动到 src/exceptions 目录。

1.1.1

发布于 2018 年 10 月 7 日

  • 修复 改进了文档注释,以便各种 IDE 更易识别。

  • 改进 添加了 "关联" 类型的 ObjectField (见 "模式字段类型")。

1.1.0

发布于 2018 年 8 月 26 日

  • 改进 进行了大量代码重构和人性化改进

  • 改进 严重重构了 ObjectCollection.php

  • 修复 修复了 ObjectCollection::fromArray 静态方法中与 is_subclass_of 检查相关的错误。

  • 新增 引入了 ObjectModelException.php,其中包含从现在开始在库上下文中使用的异常类。

 

1.0.2

发布于 2018 年 8 月 10 日

  • 修复 修复了与 ObjectModel->getById() 方法相关的与主键字段名称相关的错误。

  • 修复 修复了与 ObjectModel->getById() 方法相关的与未使用的 orderBy 参数相关的错误(因为该方法的设计仅用于返回一个项目)。

  • 改进ObjectModel.php 中记录了所有方法

  • 改进 重写了 ObjectModel::getOne 方法,现在基于常用的 ObjectModel::simpleQuery 方法。使用 getOne 方法的用法未改变。

  • 改进 清理了 ObjectModel.php 中的代码

 

1.0.1

发布于 2018 年 8 月 9 日

  • 更新 分离了默认和 string 字段验证类型

  • 改进 更新并改进了 readme

  • 改进 更新了 ObjectModel->toArray():添加了内部集合序列化标志

  • 破坏性更改 改变了提供数据库连接的逻辑:现在您应使用 ObjectModel::setDB 方法。

1.0.0

发布于 2018 年 8 月 9 日

  • 初始发布