PHPackages                             sirix/cycle-orm-extensions - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. sirix/cycle-orm-extensions

ActiveLibrary[Database &amp; ORM](/categories/database)

sirix/cycle-orm-extensions
==========================

Practical extensions for Cycle ORM: base repositories, entity traits, typecasts and more

3.0.1(2mo ago)04181MITPHPPHP ~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0CI passing

Since May 31Pushed 2mo agoCompare

[ Source](https://github.com/sirix777/cycle-orm-extensions)[ Packagist](https://packagist.org/packages/sirix/cycle-orm-extensions)[ Fund](https://buymeacoffee.com/sirix)[ GitHub Sponsors](https://github.com/sirix777)[ RSS](/packages/sirix-cycle-orm-extensions/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (8)Dependencies (17)Versions (10)Used By (1)

Cycle ORM Extensions
====================

[](#cycle-orm-extensions)

Practical extensions for Cycle ORM: base repositories, entity traits, typecasts, and more.

[![Latest Stable Version](https://camo.githubusercontent.com/abb0bddabdd8b05a6d34d0b1a4e35736b37f4e0c53f301b79265d1bec7fe9ee0/687474703a2f2f706f7365722e707567782e6f72672f73697269782f6379636c652d6f726d2d657874656e73696f6e732f76)](https://packagist.org/packages/sirix/cycle-orm-extensions)[![Total Downloads](https://camo.githubusercontent.com/ba6632ecca65b1e2c2d01f4cb116550f89934b5ed0adf27cf6a4e1b722dba63d/687474703a2f2f706f7365722e707567782e6f72672f73697269782f6379636c652d6f726d2d657874656e73696f6e732f646f776e6c6f616473)](https://packagist.org/packages/sirix/cycle-orm-extensions)[![Latest Unstable Version](https://camo.githubusercontent.com/e3a089d6cb60d12aef690fc8a397ac5a6d7f509e3712898720e4205ec5b4e055/687474703a2f2f706f7365722e707567782e6f72672f73697269782f6379636c652d6f726d2d657874656e73696f6e732f762f756e737461626c65)](https://packagist.org/packages/sirix/cycle-orm-extensions)[![License](https://camo.githubusercontent.com/8801e98070009af24e7f7323d5c0259ca9bffa8d1845bfbe905baef8576ed74c/687474703a2f2f706f7365722e707567782e6f72672f73697269782f6379636c652d6f726d2d657874656e73696f6e732f6c6963656e7365)](https://packagist.org/packages/sirix/cycle-orm-extensions)[![PHP Version Require](https://camo.githubusercontent.com/58bce26eefbecf775ac3339fd8b0079bf7c97ceafc08a8225200c12edc06c968/687474703a2f2f706f7365722e707567782e6f72672f73697269782f6379636c652d6f726d2d657874656e73696f6e732f726571756972652f706870)](https://packagist.org/packages/sirix/cycle-orm-extensions)

Overview
--------

[](#overview)

This package provides a collection of practical extensions for [Cycle ORM](https://cycle-orm.dev/), including:

- Entity traits for common functionality (timestamps, UUIDs, etc.)
- Base repository implementations
- Custom typecasts
- Event listeners
- And more

Requirements
------------

[](#requirements)

- PHP 8.2, 8.3, 8.4, or 8.5
- Cycle ORM 2.10+
- Ramsey UUID 4.7+

Installation
------------

[](#installation)

Install the package via composer:

```
composer require sirix/cycle-orm-extensions
```

Features
--------

[](#features)

### Entity Traits

[](#entity-traits)

The package provides several traits for common entity functionality:

#### Standard Traits

[](#standard-traits)

- `HasChronosCreateTrait` - Adds creation timestamp functionality
- `HasChronosUpdateTrait` - Adds update timestamp functionality
- `HasChronosDeleteTrait` - Adds deletion timestamp functionality
- `HasIdIdentifierTrait` - Adds integer ID primary key functionality
- `HasUuidIdentifierTrait` - Adds UUID primary key functionality

#### Annotated Traits

[](#annotated-traits)

Annotated versions of the traits that include Cycle ORM annotations:

- `HasChronosCreateTimestampAnnotatedTrait` - Adds creation timestamp with annotations
- `HasChronosCreateDatetimeAnnotatedTrait` - Adds creation datetime with annotations
- `HasChronosUpdateTimestampAnnotatedTrait` - Adds update timestamp with annotations
- `HasChronosUpdateDatetimeAnnotatedTrait` - Adds update datetime with annotations
- `HasChronosDeleteTimestampAnnotatedTrait` - Adds deletion timestamp with annotations
- `HasChronosDeleteDatetimeAnnotatedTrait` - Adds deletion datetime with annotations
- `HasIdIdentifierAnnotatedTrait` - Adds integer ID primary key with annotations
- `HasUuidIdentifierAnnotatedTrait` - Adds UUID primary key with annotations
- `HasUuidIdentifierStringAnnotatedTrait` - Adds UUID primary key (string) with annotations
- `HasUuidIdentifierByteAnnotatedTrait` - Adds UUID primary key (binary) with annotations

### Repositories

[](#repositories)

Base repository implementations for common operations:

- `AbstractReadRepository` - Base repository for read-only operations
- `AbstractWriteRepository` - Base repository for read-write operations

#### SelectFactory

[](#selectfactory)

The `SelectFactory` is a utility class used by repositories to create `Cycle\ORM\Select` instances. It ensures that the role passed to the select is a valid entity class implementing `EntityInterface`.

In your application, you should register `SelectFactory` in your dependency injection container. Registration example:

```
