technoknol/doctrineextensions

一组扩展,为Doctrine 2添加对MySQL、Oracle、PostgreSQL和SQLite中可用查询函数的支持。

1.3.1 2021-06-01 18:35 UTC

README

Build Status Build Status Packagist Packagist Packagist Packagist

beberlei/doctrineextensions 包的分支。

一组扩展,为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 technoknol/doctrineextensions

如果您想运行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函数,或者不支持您想要传递的参数,请在此存储库上打开新问题。拉取请求是开放的,我们非常欢迎您的贡献。