warhuhn/chronos-doctrine

Doctrine DBAL Types to use Chronos' Immutable DateTime Objects

Installs: 91 785

Dependents: 0

Suggesters: 0

Security: 0

Stars: 15

Watchers: 2

Forks: 4

pkg:composer/warhuhn/chronos-doctrine

5.0.0 2025-10-30 18:38 UTC

This package is auto-updated.

Last update: 2025-12-16 01:01:16 UTC


README

License: MIT Run unit tests

The warhuhn/chronos-doctrine library adds Doctrine DBAL Types that convert Date/DateTime-based database values to Immutable Chronos DateTime-Implementations.

View on Packagist

Installation

composer.phar require warhuhn/chronos-doctrine

Configuration

doctrine/dbal in raw PHP

<?php

\Doctrine\DBAL\Types::addType('chronos_date', \Warhuhn\Doctrine\DBAL\Types\ChronosDateType::class);
\Doctrine\DBAL\Types::addType('chronos_datetime', \Warhuhn\Doctrine\DBAL\Types\ChronosDateTimeType::class);
\Doctrine\DBAL\Types::addType('chronos_datetimetz', \Warhuhn\Doctrine\DBAL\Types\ChronosDateTimeTzType::class);

Symfony

# app/config/config.yml
doctrine:
   dbal:
       types:
           chronos_date: Warhuhn\Doctrine\DBAL\Types\ChronosDateType
           chronos_datetime: Warhuhn\Doctrine\DBAL\Types\ChronosDateTimeType
           chronos_datetimetz: Warhuhn\Doctrine\DBAL\Types\ChronosDateTimeTzType

Usage in Doctrine ORM 3.0

<?php

namespace Warhuhn\Doctrine\DBAL\Types;

use Cake\Chronos\Chronos;
use Cake\Chronos\ChronosDate;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
class Example
{

    #[ORM\Column(type: 'chronos_date')]
    private ChronosDate $date;

    #[ORM\Column(type: 'chronos_datetime')]
    private Chronos $dateTime;

    #[ORM\Column(type: 'chronos_datetimetz')]
    private Chronos $dateTimeTz;

}