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
Integrations
Free tier
Free trial
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

What users like
  • +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.
What users flag
  • 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,…

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