warhuhn/chronos-doctrine

将 Doctrine DBAL 类型用于 Chronos 的不可变 DateTime 对象

v4.1.0 2023-11-19 23:17 UTC

This package is auto-updated.

Last update: 2024-09-20 01:26:46 UTC


README

License: MIT Run unit tests

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;
}