doctrine-functions
doctrine-functions copied to clipboard
📚 Set of DQL Function for MySQL
Doctrine Functions
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