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
Requires
- php: >=8.2
- cakephp/chronos: ^3.3
- doctrine/dbal: ^4.3
Requires (Dev)
- phpunit/phpunit: ^10.5
README
The warhuhn/chronos-doctrine library adds Doctrine DBAL Types that convert Date/DateTime-based database values to Immutable Chronos DateTime-Implementations.
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; }