litipk/doctrine-mongodb-jiffy

This package is abandoned and no longer maintained. No replacement package was suggested.

Type adapter for Jiffy's Universal Timestamps on Doctrine MongoDB ODM

1.0.0 2016-06-07 06:32 UTC

This package is auto-updated.

Last update: 2020-01-10 19:30:20 UTC


README

Author Quality Score Software License Packagist Version Total Downloads

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:

  1. Install the library through Composer.
  2. 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'
    );
    
  3. Use the type in your models with the @UniversalTimestampField annotation.
    use Litipk\Jiffy\Doctrine\ODM\MongoDB\UniversalTimestampField;
    
    class OurDocument
    {
        /**
         * @UniversalTimestampField()
         * @var UniversalTimestamp
         */
        private $creationDate;
        
        // [...]
    }