cycle / orm
PHP 数据映射 ORM 和数据建模引擎
v2.9.0
2024-06-05 13:14 UTC
Requires
- php: >=8.0
- ext-pdo: *
- cycle/database: ^2.8.1
- doctrine/instantiator: ^1.3.1 || ^2.0
- spiral/core: ^2.8 || ^3.0
Requires (Dev)
- doctrine/collections: ^1.6 || ^2.0
- illuminate/collections: ^8.0
- loophp/collection: ^6.0 || ^7.0
- mockery/mockery: ^1.1
- phpunit/phpunit: ^9.5
- ramsey/uuid: ^4.0
- spiral/tokenizer: ^2.8 || ^3.0
- symfony/var-dumper: ^5.2 || ^6.0 || ^7.0
- vimeo/psalm: 5.21
- 2.x-dev
- v2.9.0
- v2.8.0
- v2.7.1
- v2.7.0
- v2.6.1
- v2.6.0
- v2.5.0
- v2.4.0
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.2
- v2.0.1
- v2.0.0
- 1.x-dev
- v1.8.1
- v1.8.0
- v1.7.1
- v1.7.0
- v1.6.1
- v1.6.0
- v1.5.1
- v1.5
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.17
- v1.2.16
- v1.2.15
- v1.2.14
- v1.2.13
- v1.2.12
- v1.2.11
- v1.2.10
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
- 0.3a
- 0.2a
- v0.1a
- dev-many-to-many-self-cyclic
- dev-bytea-column
- dev-hotfix/entity-proxy-constructor
This package is auto-updated.
Last update: 2024-08-29 08:07:22 UTC
README
Cycle 是一个 PHP 数据映射器、ORM 和数据建模引擎,旨在在经典和高级 PHP 应用程序(如 RoadRunner)中安全工作。ORM 提供灵活的配置选项来建模数据集,强大的查询构建器,并支持动态映射模式。该引擎可以与普通 PHP 对象一起工作,支持注解声明,并通过扩展进行代理。
网站和文档 | 与 Eloquent 和 Doctrine 的比较
特性
- ORM 具有一对一、一对多、多对多和多态关系
- 普通 PHP 对象,AR,自定义对象或同一实体类型的多仓库
- 预加载和延迟加载,具有多种获取策略的查询构建器
- 嵌入式实体,延迟/预加载的嵌入式部分
- 运行时配置,带或不带代码生成
- 列到字段映射,单表继承,值对象支持
- 可定制:持久策略、映射器、关系、事务
- 使用命令链在有向图和循环图中工作
- 专为长时间运行的应用程序设计:不可变服务核心,可丢弃的 UoW
- 支持 MySQL、MariaDB、PostgresSQL、SQLServer、SQLite
- 模式脚手架、元数据、迁移和调试
- 支持全局查询作用域、UUID 作为主键、软删除、自动时间戳和宏
- 自定义列类型,非主键列的外键
- 带或不带注解、代理类和自动迁移使用
- 与 Doctrine Collections、Illuminate Collections 和自定义集合兼容
- 与 Doctrine Annotations、PHP8 属性兼容
扩展
示例
// 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(); $em = new EntityManager($orm); foreach($users as $user) { $em->persist($user); } $em->run();
许可
MIT 许可证 (MIT)。有关更多信息,请参阅LICENSE
。由 Spiral Scout 维护。