mapado / mysql-doctrine-functions
MySQL Function for Doctrine : RAND(), ROUND() DATE(), DATE_FORMAT()...
Installs: 253 533
Dependents: 1
Suggesters: 0
Security: 0
Stars: 44
Watchers: 15
Forks: 5
Open Issues: 1
Requires
- doctrine/orm: >=2.2.0
README
This library provides you MySQL functions for Doctrine2.
At the moment are supported
- RAND
- ROUND
- DATE
- DATE_FORMAT
Feel free to fork and add other functions.
Installation
Get the package
With composer
composer require mapado/mysql-doctrine-functions
Add the classes to your configuration
$config = new \Doctrine\ORM\Configuration(); $config->addCustomStringFunction('rand', \Mapado\MysqlDoctrineFunctions\DQL\MysqlRand::class); $config->addCustomStringFunction('round', \Mapado\MysqlDoctrineFunctions\DQL\MysqlRound::class); $config->addCustomStringFunction('date', \Mapado\MysqlDoctrineFunctions\DQL\MysqlDate::class); $config->addCustomStringFunction('date_format', \Mapado\MysqlDoctrineFunctions\DQL\MysqlDateFormat::class); $em = EntityManager::create($dbParams, $config);
You can of course pick just the functions you need.
Use with Symfony
If you install the library in a Symfony application, you can add this in your config.yml
file (doctrine.yaml
file if you use symfony flex)
# app/config/config.yml doctrine: orm: # ... entity_managers: default: # ... dql: numeric_functions: rand: 'Mapado\MysqlDoctrineFunctions\DQL\MysqlRand' round: 'Mapado\MysqlDoctrineFunctions\DQL\MysqlRound' datetime_functions: date: 'Mapado\MysqlDoctrineFunctions\DQL\MysqlDate' date_format: 'Mapado\MysqlDoctrineFunctions\DQL\MysqlDateFormat' # ... add all functions you need
Usage
You can now use the functions in your DQL Query
$query = 'SELECT RAND(), ROUND(123.45) FROM ... '; $em->createQuery($query);