crysalead/chaos-orm

数据抽象层。

dev-master 2023-09-06 22:46 UTC

This package is auto-updated.

Last update: 2024-09-07 00:57:54 UTC


README

Build Status Build Status Scrutinizer Coverage Status

Chaos 是一个独立、与持久层无关的层,负责定义实体的业务逻辑和关系。它允许描述一个 领域模型,而不需要对持久层做出任何假设。

注意:Chaos 语法源于 li3。如果语法与前辈不完全兼容,已尽力保持相同简洁美观的语法。

可用的数据源库

Chaos 通过在根级别提供所有持久层无关的逻辑,如关系、 eager/lazy 加载、验证等,极大地简化了数据源库的开发。唯一的要求是您打算使用的数据源需要能够通过唯一标识符(即没有复合主键)获取记录/文档。

要求

  • PHP 5.5+

主要特性

  • 支持 eager/lazy 加载
  • 支持自定义查找器
  • 支持嵌套保存
  • 支持嵌套验证
  • 支持外部 & 内嵌关系
  • 支持自定义类型 & 实体的字段类型转换

语法示例

use My\Project\Model\Images;

// Adding a many-to-many relation
$image = Image::load(123);
$image->tags[] = ['name' => 'Landscape'];
$image->broadcast();

foreach($image->tags as $tag) { // Echoes: 'Montain', 'Black&White', 'Landscape'
    echo $tag->name;
}

文档

请参阅完整的 文档

测试

可以使用以下命令运行 spec 集合

cd chaos
composer install
./bin/kahlan