Cycle ORM logo

Cycle ORM

by Spiral Scout · Since 2011
No reviews yet
ActiveAvailable globallyCloud
Quick facts
VendorSpiral Scout
Year launched2011
StatusActive
LocationSan Francisco, California Charlotte, North Carolina United States
Countries servedGlobal
Languages1
IntegrationsN/A
Free tierN/A
Free trialN/A
Contact salesYES

About Cycle ORM

Cycle ORM is a database interaction software from Spiral Scout that supports efficient data management. It includes features such as a capable query builder, support for multiple databases, and transaction management so developers can handle complex data operations easily. Cycle ORM allows for object-oriented database access, promoting a more intuitive coding use. It is designed to work with various database systems, providing flexibility in development environments. This platform supports both synchronous and asynchronous operations, enabling better performance for applications. Key capabilities: capable query builder support for multiple databases transaction management object-oriented access asynchronous operations Best for: developers that need efficient database interaction and management in their applications.

Cycle ORM by Spiral Scout is a powerful and flexible object-relational mapper (ORM) designed for PHP developers who seek modern, performant, and scalable solutions to handle complex data operations in web applications. Built to bridge the gap between PHP applications and relational databases, Cycle ORM focuses on developer control and code transparency, offering fine-tuned data mapping and persistence mechanisms without relying heavily on reflection or annotation-heavy programming styles. It is especially attractive to developers who want better control over their domain logic and prefer configuration over convention. As a data layer engine for high-load applications, it supports a wide variety of use cases—from simple CRUD operations to complex transactional workflows. While Cycle ORM doesn’t have a traditional graphical user interface, its design philosophy around usability is evident in its elegant syntax, intuitive mapping definitions, and support for domain-driven development. Instead of depending on YAML or annotations like some legacy ORMs, Cycle uses PHP schema declarations that are readable and easy to manage. This allows developers to understand and configure entity relationships with less guesswork and debugging time.

Pros & Cons

Pros
  • Flexible DataMapper: Clean separation of objects and database, supporting various object types (POPOs, AR).
  • Powerful Querying: Robust query builder with flexible eager/lazy loading strategies.
  • Complex Relation Handling: Excellent support for polymorphic, many-through-many, and other advanced relationships.
  • Graph Database Capabilities: Uniquely handles directed and cyclic graphs, good for complex data.
Cons
  • Steeper Learning Curve: DataMapper pattern and advanced features might be more complex to grasp for beginners compared to simpler ORMs.
  • Niche Use Case (Graph): While powerful, the graph capabilities might be overkill for standard CRUD applications.
  • Community Size: Potentially smaller community compared to more widely adopted ORMs like Doctrine or Eloquent, though backed by Spiral Scout.
  • Documentation Depth: While available, the depth of documentation for every edge case of its advanced features might vary.

Features

Key features

DataMapper Pattern

Utilizes the DataMapper pattern, allowing for a clean separation between your domain objects and the database, supporting Plain Old PHP Objects (POPOs), Active Record (AR), or custom entity types.

Comprehensive Relation Support

Provides extensive support for various relational types including has-one, has-many, many-through-many, and polymorphic relations, enabling complex data modeling.

Flexible Loading Strategies

Offers both Eager and Lazy loading with a powerful query builder and multiple fetch strategies, allowing developers to optimize data retrieval based on specific needs.

Dynamic Mapping & Runtime Configuration

Supports dynamic mapping schemas and runtime configuration (with or without code-generation), providing flexibility in how data is mapped to objects.

Graph Database Capabilities

Uniquely works with both directed and cyclic graphs using command chains, facilitating the persistence of complex object graphs with recursive dependencies.

Broad Database Compatibility

Supports a wide range of popular relational databases including MySQL, MariaDB, PostgreSQL, SQL Server, and SQLite.

Additional features

PHP DataMapper ORM & Data Modelling Engine

The core identity of the product, emphasizing its data mapping and modeling capabilities in PHP.

Flexible Configuration Options

Allows for highly adaptable setup to model datasets according to specific requirements.

Powerful Query Builder

Provides a robust tool for constructing complex database queries.

Dynamic Mapping Schemas

Supports the ability to define and adjust how objects map to database tables at runtime, useful for applications requiring dynamic data structures (e.g., ERP/CRM/CMS).

Polymorphic Relations

Supports advanced relationship types where an entity can be related to multiple other entity types (e.g., a "Comment" entity related to either a "Post" or a " "Video" entity).

Has-One, Has-Many, Many-Through-Many Relations

Standard relational capabilities for defining relationships between entities.

Multiple Object Types Support

Can work with Plain Old PHP Objects (POPOs), Active Record (AR) patterns, custom objects, or even the same entity type for multiple repositories, offering flexibility in object design.

Eager Loading

Allows loading related data along with the primary entity in a single query, reducing the N+1 query problem.

Lazy Loading

Defers loading of related data until it is actually accessed, optimizing initial load times.

Multiple Fetch Strategies

Provides various methods for retrieving data from the database.

Runtime Configuration (with/without code-generation)

Enables configuring the ORM at runtime, offering flexibility and potentially avoiding the need for static code generation, which is beneficial for long-running applications like those powered by RoadRunner.

Column-to-Field Mapping

Straightforward mapping of database table columns to object properties.

Single Table Inheritance

A mapping strategy where an entire class hierarchy is stored in a single database table.

Value Objects Support

Allows embedding value objects (objects without a unique identity that represent a value, like an "Address" object) within entities.

Works with Directed Graphs

Can manage and persist data structures that have directional relationships.

Works with Cyclic Graphs using Command Chains

Specifically designed to handle complex data structures with circular dependencies through its command chain mechanism for persistence.

MySQL Support

Compatible with MySQL databases.

MariaDB Support

Compatible with MariaDB databases.

PostgreSQL Support

Compatible with PostgreSQL databases.

SQL Server Support

Compatible with Microsoft SQL Server databases.

SQLite Support

Compatible with SQLite databases.

Included DBAL Component

The cycle/database component (Database Abstraction Layer) is included by default in Web and GRPC builds, focusing on unifying database access across different DBMS.

Compatible with Doctrine Collections

Can work seamlessly with doctrine/collections for handling entity collections.

Compatible with Laravel Collections

Can work seamlessly with illuminate/collections (Laravel's collection class) for handling entity collections.

Compatible with Doctrine Annotations

Supports defining entity mappings using Doctrine annotations (and PHP 8 attributes).

Designed for Long-Running Applications

Built to work safely and efficiently in daemonized PHP environments like RoadRunner, minimizing memory leaks.

Hackable Architecture

Allows for customization of persist strategies, mappers, relations, and transactions.

Schema Scaffolding, Introspection, Migrations

Tools for generating database schemas, inspecting existing ones, and managing database changes through migrations.

Supports Global Query Scopes

Defines reusable query constraints.

UUIDs as Primary Keys

Supports using Universally Unique Identifiers as primary keys.

Soft Deletes

Provides a mechanism for marking records as "deleted" without actually removing them from the database.

Auto Timestamps

Automatically manages created_at and updated_at fields.

Custom Column Types

Allows defining custom data types for database columns.

Foreign Keys to Non-Primary Columns

Supports defining foreign key relationships to columns that are not primary keys.

Composite Keys Support

Allows entities and relations to use multiple columns as a primary or foreign key.

Joined Table Inheritance (JTI)

A mapping strategy where each entity in a class hierarchy maps to its own separate table, joined by a common identifier.

Significantly Redesigned Mappers

Improved internal mapper architecture for easier work with lazy links, typed class properties, and private class properties.

Proxy Entities for Lazy Loading

Uses proxy objects to enable efficient lazy loading of relationships.

Faster Entities Hydrator

A rewritten hydrator for improved performance when populating entities from database results.

Customizable Typecasting

Flexible rules and handlers for converting entity property values to common data types.

Separated Entity Manager and Unit Of Work

Distinct components for managing transaction state and persisting entities.

PHP 8.0+ Support

Ensures compatibility with modern PHP versions.

Pricing

Free trial
Free version
Request a quote
Promo Offer

Countries & Languages

Global
Countries served
1
Interface languages
3
Billing currencies

Interface languages

English

Billing currencies

🇺🇸USD🇪🇺EUR🇬🇧GBP

No reviews yet

Be the first to drop a review

Alternatives to Cycle ORM

MAISY Database logo

MAISY Database

MAISY Database is a utility customer data platform from Jackson Associates that supports block-level distribution…

AITable logo

AITable

AITable.ai is a visual database and workflow automation platform that functions like a spreadsheet but…

NCache logo

NCache

NCache is an Open Source Distributed Cache software from AlachiSoft that supports data caching and…

O

OSqlEdit

OSqlEdit is a database management software from OwnData that provides tools for editing and executing…

NuoDB logo

NuoDB

NuoDB is a distributed SQL database software from Dassault Systèmes that enables enterprise-grade applications to…

DBF Manager logo

DBF Manager

DBF Manager is a database management software from Astersoft that helps users manage, fix, compare,…

Spot something wrong or outdated?

Suggest a correction — a reviewer verifies every change.

Often compared with Cycle ORM

Compare any two tools →
MAISY Database logo
MAISY Database
Database
0.0
AITable logo
AITable
Project Management
0.0
NCache logo
NCache
Database
0.0
O
OSqlEdit
Database
0.0