crysalead/chaos

此包已被废弃,不再维护。作者建议使用crysalead/chaos-orm包。

数据抽象层。

dev-master 2019-02-11 22:11 UTC

This package is not auto-updated.

Last update: 2019-02-20 18:38:26 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;
}

文档

请参阅完整的文档

测试

可以运行规范套件

cd chaos
composer install
./bin/kahlan