divineniiquaye/cycle-orm

此包已废弃,不再维护。作者建议使用cycle/orm包。

PHP数据映射ORM和数据建模引擎

v1.2.5 2020-06-22 04:06 UTC

README

Latest Stable Version Build Status Scrutinizer Code Quality Codecov 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f646973636f72642d636861742d6d6167656e74612e737667

Cycle ORM

Cycle是一个PHP数据映射器、ORM和数据建模引擎,旨在在经典和守护进程化的PHP应用程序(如RoadRunner)中安全工作。ORM提供灵活的配置选项来建模数据集,强大的查询构建器和支持动态映射模式。该引擎可以与纯PHP对象协同工作,支持注解声明,并通过扩展进行代理。

网站和文档 | 与Eloquent和Doctrine的比较

特性

  • 干净且快速的Data Mapper
  • 具有一对一、一对多、多对多和泛型关系的ORM
  • 纯PHP对象、ActiveRecord、自定义对象或多个仓库使用同一实体类型
  • 预加载和延迟加载,具有多种获取策略的查询构建器
  • 内嵌实体,延迟/预加载的内嵌部分
  • 运行时配置,带有/不带代码生成
  • 列到字段的映射,单表继承,支持值对象
  • 可定制:持久化策略、映射器、关系、事务
  • 使用命令链处理有向图和循环图
  • 设计用于长时间运行的应用程序:不可变服务核心,可丢弃的工作单元(UoW)
  • 支持MySQL、MariaDB、PostgresSQL、SQLServer、SQLite
  • 模式脚手架、元数据分析和迁移
  • 支持全局查询约束、UUID作为PK、软删除、自动时间戳
  • 自定义列类型,非主键列的FK
  • 使用或无需注解、代理类和自动迁移
  • 与Doctrine Collections、Doctrine Annotations和Zend Hydrator兼容

扩展

组件 当前状态
cycle/schema-builder Latest Stable Version Build Status Scrutinizer Code Quality Codecov
cycle/annotated Latest Stable Version Build Status Scrutinizer Code Quality Codecov
cycle/proxy-factory Latest Stable Version Build Status Scrutinizer Code Quality Codecov
cycle/migrations Latest Stable Version Build Status Scrutinizer Code Quality Codecov

示例

// 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维护。