hgato / php-crud-comparator
用于比较PHP模型数组的库
v1.0.5
2023-03-14 16:48 UTC
Requires
- php: >=7.0.33
README
此库旨在比较模型数组,并返回3个数组:创建、更新、删除。
执行逻辑如下
- 作为第一个参数提供旧模型数组
- 作为第二个参数提供新模型数组
- 作为第三个参数提供ID字段数组
- 作为第四个参数提供二级字段数组
- 如果具有相同ID(所有ID字段视为组合键)的模型在旧数组和新数组中都存在,但二级字段不同,则该模型被视为更新
- 如果具有相同ID的模型在旧数组和新数组中都存在,且二级字段相同,则忽略模型
- 如果模型在旧数组中但不在新数组中,则模型应被删除
- 反之,在新的数组中但不在旧的数组中 - 模型应创建
典型用例:前端发送模型数组,但不说有什么变化。同时,一些数据已在数据库中。此库有助于找出差异。
示例
class TestObject { public $id; public $key; public $name; public $description; } $oldArray = [/* Some instances of TestObject*/]; $newArray = [/* Other instances of TestObject*/]; $comparator = new ObjectComparator(); $comparator->compare( $oldArray, $newArray, ['id', 'key'], ['name', 'description'] ); $create = $comparator->getCreate(); $update = $comparator->getUpdate(); $delete = $comparator->getDelete();