覆盖 DBAL 类型

Override DBAL Type

https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/cookbook/working-with-datetime.html

我尝试使用此代码制作 UTC DateTime 类型。但是,代码没有被调用。

让我困惑的是这一段:

use Doctrine\DBAL\Types\Type;
use DoctrineExtensions\DBAL\Types\UTCDateTimeType;

Type::overrideType('datetime', UTCDateTimeType::class);
Type::overrideType('datetimetz', UTCDateTimeType::class);

没有说明应该在哪里调用这段代码。它只说 "before bootstrapping the ORM",经过几个小时的谷歌搜索,我仍然没有弄清楚那是什么意思,我现在处于死胡同。

我试图将代码与 UTCDateTimeType class 放在同一个文件中,但这没有用。

对于 symfony,新的学说类型应在 config/doctrine.yaml 文件中声明。

doctrine:
    dbal:
        types:
            datetime:   DoctrineExtensions\DBAL\Types\UTCDateTimeType
            datetimez:  DoctrineExtensions\DBAL\Types\UTCDateTimeType

确保 class DoctrineExtensions\DBAL\Types\UTCDateTimeType 存在。

这是安装空间扩展并声明 geometric types 的完整示例。