warhuhn / chronos-doctrine
将 Doctrine DBAL 类型用于 Chronos 的不可变 DateTime 对象
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
warhuhn/chronos-doctrine 库增加了 Doctrine DBAL 类型,这些类型可以将基于 Date/DateTime 的数据库值转换为不可变的 Chronos DateTime 实现。
安装
composer.phar require warhuhn/chronos-doctrine
配置
原始 PHP 中的 doctrine/dbal
<?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
在 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; }