chindit/doctrineextensions

Doctrine 2 的扩展集,增加了对 MySQL、Oracle、PostgreSQL 和 SQLite 中可用的附加查询功能的支持。

1.3.2 2023-10-18 10:00 UTC

This package is auto-updated.

Last update: 2024-09-18 13:35:09 UTC


README

Build Status Build Status Packagist Packagist Packagist Packagist

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

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

安装

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

composer require beberlei/doctrineextensions=dev-master

如果您想运行 phpunit

composer run test

如果您想运行 php-cs-fixer

composer run lint

用法

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

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

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

<?php

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

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

注意

  • 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 函数,请提交拉取请求,我们非常乐意接受您的贡献。