luxifer/doctrine-functions

Doctrine DQL Functions for Mysql

1.6.0 2017-12-21 14:04 UTC

This package is auto-updated.

Last update: 2024-10-08 06:41:42 UTC


README

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

This package contains doctrine functions, you can contribute by forking it and propose pull request with your own functions. List of available functions:

  • 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)

Edit this file in your pull request to add your functions to the list.

Requirements

This library is expected to work with PHP >= 5.3, but you should consider to upgrade to PHP >= 7.0. To contribute to this library you must have PHP >= 7.0 to run the test suite.

Installation

Just add the package to your composer.json

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

Integration

1) Doctrine Only

According to the Doctrine documentation you can register the functions in this package this way.

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

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

2) Using Symfony 2

With Symfony 2 you can register your functions directly in the config.yml file.

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