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.
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.
Just add the package to your composer.json
{
"require": {
"luxifer/doctrine-functions": "^1.5"
}
}
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);
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