crysalead / chaos
dev-master
2019-02-11 22:11 UTC
Requires
- php: >=5.5
- crysalead/box: ~2.0
- crysalead/inflector: ~2.0
- crysalead/set: ~2.0
- crysalead/text: ~2.0
- crysalead/validator: ~3.0
Requires (Dev)
- kahlan/kahlan: ~4.5
This package is not auto-updated.
Last update: 2019-02-20 18:38:26 UTC
README
Chaos是一个独立、与持久层无关的层,负责定义实体业务逻辑和关系。它允许在不假设任何持久层的情况下描述领域模型。
注意:Chaos语法来源于li3。如果语法与前辈不兼容,已尽力保持相同的简洁和美观语法。
可用的数据源库
- chaos-database:支持MySQL和PostgreSQL。
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