divineniiquaye / cycle-orm
v1.2.5
2020-06-22 04:06 UTC
Requires
- php: ^7.2
- ext-pdo: *
- biurad/biurad-database: ^2.7
- doctrine/collections: ^1.5
- doctrine/inflector: ^1.3
- doctrine/instantiator: ^1.2
- laminas/laminas-hydrator: ^2.4|^3.0
Requires (Dev)
- biurad/biurad-loader: ^0.1
- mockery/mockery: ^1.1
- phpunit/phpunit: ~8.0
- ramsey/uuid: ^3.8
- spiral/code-style: ^1.0
- spiral/dumper: ^1.0
This package is auto-updated.
Last update: 2020-10-16 08:19:47 UTC
README
Cycle是一个PHP数据映射器、ORM和数据建模引擎,旨在在经典和守护进程化的PHP应用程序(如RoadRunner)中安全工作。ORM提供灵活的配置选项来建模数据集,强大的查询构建器和支持动态映射模式。该引擎可以与纯PHP对象协同工作,支持注解声明,并通过扩展进行代理。
特性
- 干净且快速的Data Mapper
- 具有一对一、一对多、多对多和泛型关系的ORM
- 纯PHP对象、ActiveRecord、自定义对象或多个仓库使用同一实体类型
- 预加载和延迟加载,具有多种获取策略的查询构建器
- 内嵌实体,延迟/预加载的内嵌部分
- 运行时配置,带有/不带代码生成
- 列到字段的映射,单表继承,支持值对象
- 可定制:持久化策略、映射器、关系、事务
- 使用命令链处理有向图和循环图
- 设计用于长时间运行的应用程序:不可变服务核心,可丢弃的工作单元(UoW)
- 支持MySQL、MariaDB、PostgresSQL、SQLServer、SQLite
- 模式脚手架、元数据分析和迁移
- 支持全局查询约束、UUID作为PK、软删除、自动时间戳
- 自定义列类型,非主键列的FK
- 使用或无需注解、代理类和自动迁移
- 与Doctrine Collections、Doctrine Annotations和Zend Hydrator兼容
扩展
组件 | 当前状态 |
---|---|
cycle/schema-builder | |
cycle/annotated | |
cycle/proxy-factory | |
cycle/migrations |
示例
// load all active users and pre-load their paid orders sorted from newest to olders // the pre-load will be complete using LEFT JOIN $users = $orm->getRepository(User::class) ->select() ->where('active', true) ->load('orders', [ 'method' => Select::SINGLE_QUERY, 'load' => function($q) { $q->where('paid', true)->orderBy('timeCreated', 'DESC'); } ]) ->fetchAll(); $t = new Transaction($orm); foreach($users as $user) { $t->persist($user); } $t->run();
许可证
MIT许可证(MIT)。请参阅LICENSE
获取更多信息。由Spiral Scout维护。