dukecity/doctrineextensions

Doctrine 2 的一系列扩展,增加了对 MySQL、Oracle、PostgreSQL 和 SQLite 中可用的一些查询函数的支持。

v2.0.2 2023-11-07 18:59 UTC

README

Build Status Build Status codecov Packagist

Doctrine 2 的一系列扩展,增加了对 MySQL、Oracle、PostgreSQL 和 SQLite 中可用函数的支持。

注意:SQLite 日期函数实现为 strftime(format, value)。SQLite 只支持最常见的格式,因此 date_format 将将 MySQL 替换转换为最接近的 SQLite 替换。这意味着 date_format(field, '%b %D %Y') -> Jan 1st 2023 变为 strftime('%m %d %Y', field) -> 01 01 2023

安装

要安装此库,运行以下命令并获取最新版本

composer require dukecity/doctrineextensions

用法

如果您使用 DoctrineExtensions 与 Symfony,请阅读 如何注册自定义 DQL 函数

您可以在 此处 找到使用 DoctrineExtensions 自定义 DQL 函数的示例 Symfony 配置。

如果您使用 DoctrineExtensions 独立使用,您可能需要启动自动加载器

<?php

$classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions', '/path/to/extensions');
$classLoader->register();

有关更多信息,请参阅 Doctrine DQL 用户定义函数 的文档。

动机

原始存储库 original repo不再得到良好的维护。此存储库的动机是

  • 添加更多功能
  • 提高 CodeCoverage 和测试(欢迎您的帮助)
  • 现代化

致谢

感谢原始存储库及其维护者。 https://github.com/beberlei/DoctrineExtensions

测试和贡献

如果您想运行 phpunit

composer run test

如果您想运行 php-cs-fixer

composer run lint

注意事项

  • MySQL DATE_ADD 在 DQL 中可用为 DATEADD(CURRENT_DATE(), 1, 'DAY')
  • MySQL DATE_SUB 在 DQL 中可用为 DATESUB(CURRENT_DATE(), 1, 'DAY')
  • MySQL IF 在 DQL 中可用为 IFELSE(field > 0, 'true', 'false')

故障排除

在此存储库中已禁用问题,如果您想要的自定义 DQL 函数未提供,或不支持您想要传递的参数,则拉取请求是开放的,我们非常欢迎您的贡献。