olajoscs/repository

一个小的仓库层。

1.0.0 2017-04-01 11:13 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:59:58 UTC


README

这是一个基于QueryBuilder包的极简模型/仓库包。最低要求:PHP 5.5+,需要QueryBuilder的要求。

模型

要创建一个由仓库处理的模型,只需扩展Model类。

use OlajosCs\Repository\Model;
class MyModel extends Model {}

然后模型中必须定义3个方法

  • validate(): 返回void,当对象不完全准备好放入数据库时应抛出ValidationExcpetion异常。
  • static getTableName(): 返回string,数据库表的名称,与模型相关。
  • static getIdField(): 返回string,定义数据库表中ID字段的名称。

仓库

要创建一个处理模型对象的仓库,只需扩展Repository类。

use OlajosCs\Repository\Repository
class MyObjectRepository extends Repository {}

只有一个方法必须定义

  • getModelClass(): string,返回模型类的名称。(MyModel::class)

功能

  • create(): 返回一个新空模型
  • get($id): 返回一个具有ID $id的模型。如果不存在,则抛出异常。
  • getOrNew($id): 返回一个具有ID $id的模型。如果不存在,则返回一个新的空模型。
  • getList(): 返回数据库中所有模型数组。
  • save(Model $model): 将模型保存到数据库中。创建或更新。
  • delete(Model $model): 从数据库中删除模型。
  • getWhereIdIn(array $ids): 返回一个数组,包含数组中列出的ID的模型。
  • getWhereIdInWithKeys(array $ids): 与getWhereIdIn($ids)相同,但返回数组的键是模型的ID。