litipk / doctrine-mongodb-jiffy
Type adapter for Jiffy's Universal Timestamps on Doctrine MongoDB ODM
Requires
- php: >=5.5.0
- doctrine/mongodb-odm: ^1.0
- litipk/php-jiffy: ^1.4
README
About the library
PHP does not offer any native class to implement timestamps with milliseconds or microseconds precision, the only
"native" way to do it is working with the weird microtime
function and/or the \MongoDate
class.
This library provides a Doctrine ODM type to make possible using the PHP-Jiffy's UniversalTimestamp objects in our
Doctrine ODM models. It's very useful if you need to deal with very precise timestamps but you don't want to couple your
code with the \MongoDate
class without giving up on type hinting.
As an extra bonus, this library provides future compatibility with the mongodb
extension and its
MongoDB\BSON\UTCDateTime
class.
Installation
composer require litipk/doctrine-mongodb-jiffy
Usage
To use this type there are three steps:
- Install the library through Composer.
- Register the type in your application, if you are using Symfony, the Bundle constructor is a good place to do it.
Type::registerType( 'UniversalTimestamp', 'Litipk\Jiffy\Doctrine\ODM\MongoDB\UniversalTimestampType' );
- Use the type in your models with the
@UniversalTimestampField
annotation.use Litipk\Jiffy\Doctrine\ODM\MongoDB\UniversalTimestampField; class OurDocument { /** * @UniversalTimestampField() * @var UniversalTimestamp */ private $creationDate; // [...] }