luxifer/doctrine-functions

Doctrine DQL 函数用于 MySQL

1.6.0 2017-12-21 14:04 UTC

This package is auto-updated.

Last update: 2024-09-08 06:29:07 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads

此包包含 doctrine 函数,您可以通过分叉它并提交带有您自己函数的拉取请求来贡献。可用的函数列表

  • DATE(expr)
  • DATEDIFF(expr1, expr2)
  • DAYOFWEEK(expr)
  • WEEK(expr)
  • DAY(expr)
  • DAYOFMONTH(expr)
  • DAYOFYEAR(expr)
  • HOUR(expr)
  • MINUTE(expr)
  • MONTH(expr)
  • QUARTER(expr)
  • SECOND(expr)
  • TIME(expr)
  • YEAR(expr)
  • CONVERT_TZ(expr, 'from_tz', 'to_tz') (MySQL)
  • DATE_FORMAT(expr, 'format') (MySQL)
  • CONCAT_WS(separator, str1, str2, ...) (MySQL)
  • RAND() (MySQL)
  • MD5(expr) (MySQL, Postgres)
  • FROM_UNIXTIME(expr1, expr2) (MySQL)

在您的拉取请求中编辑此文件以将您的函数添加到列表中。

需求

该库预期与 PHP >= 5.3 一起工作,但您应考虑升级到 PHP >= 7.0。要为此库贡献力量,您必须拥有 PHP >= 7.0 以运行测试套件。

安装

只需将包添加到您的 composer.json

{
    "require": {
        "luxifer/doctrine-functions": "^1.5"
    }
}

集成

1) 仅 Doctrine

根据Doctrine 文档,您可以这样注册本包中的函数。

<?php
$config = new \Doctrine\ORM\Configuration();
$config->addCustomDatetimeFunction('date', 'Luxifer\DQL\Datetime\Date');

$em = EntityManager::create($dbParams, $config);

2) 使用 Symfony 2

使用 Symfony 2,您可以直接在 config.yml 文件中注册您的函数。

doctrine:
    orm:
        entity_managers:
            default:
                dql:
                    datetime_functions:
                        date:     Luxifer\DQL\Datetime\Date
                        datediff: Luxifer\DQL\Datetime\DateDiff
                        # etc