warhuhn / chronos-doctrine
Doctrine DBAL Types to use Chronos' Immutable DateTime Objects
v4.1.0
2023-11-19 23:17 UTC
Requires
- php: >=7.3
- cakephp/chronos: ^2.4|^3.0.2
- doctrine/dbal: ^2.10|^3.0
Requires (Dev)
- phpunit/phpunit: ^9.3
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
<?php use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity() */ class Example { /** * @var \Cake\Chronos\ChronosDate * @ORM\Column(type="chronos_date") */ private $date; /** * @var \Cake\Chronos\Chronos * @ORM\Column(type="chronos_datetime") */ private $dateTime; /** * @var \Cake\Chronos\Chronos * @ORM\Column(type="chronos_datetimetz") */ private $dateTimeTz; }