crysalead / chaos-orm
数据抽象层。
dev-master
2023-09-06 22:46 UTC
Requires
- php: >=7.0
- crysalead/box: ~2.0
- crysalead/inflector: ~2.0
- crysalead/set: ~2.0
- crysalead/text: ~2.0
- crysalead/validator: ~3.0
Requires (Dev)
- kahlan/kahlan: ~5.1
This package is auto-updated.
Last update: 2024-09-07 00:57:54 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; }
文档
请参阅完整的 文档。
测试
可以使用以下命令运行 spec 集合
cd chaos
composer install
./bin/kahlan