Skip to content

Latest commit

 

History

History
70 lines (56 loc) · 1.71 KB

README.md

File metadata and controls

70 lines (56 loc) · 1.71 KB

Ray.IdentityValueModule

Build Status

Overview

Ray.IdentityValueModule injects identify value such as current time or UUID.

Installation

Composer install

$ composer require ray/identity-value-module

Module install

use Ray\Di\AbstractModule;
use Ray\IdentityValueModule\IdentityValueModule;

class AppModule extends AbstractModule
{
    protected function configure()
    {
        $this->install(new IdentityValueModule);
        // $this->install(new FakeIdentityValueModule); // for testing
    }
}

Usage

class Foo
{
    private $uuid;
    private $now;
    private $iso8601;
    
    public function __construct(
        UuidInterface $uuid,
        NowInterface $now,
        Iso8601Interface $iso8601
        DateTimeIntetface $dateTime)
    {
        $this->uuid = $uuid;
        $this->now = $now;
        $this->iso8601 = $iso8601;
        $this->dateTime = $dateTime; // Current time
    }
    
    public function foo()
    {
        (string) $this->>uuid; // 11111111-2222-3333-4444-4fdffa026136
        (string) $this->>now; // 1970-01-01 00:00:00
        $this->now->iso8601() // 2019-06-24T02:43:30+02:00
        
        $this->$iso8601->convertOne('1970-01-01 00:00:00');
        $list = [
            ['a' => 0, 'created' => '1970-01-01 00:00:00'],
            ['a' => 0, 'created' => '1970-01-01 00:00:00']
        ];
        $this->$iso8601->convertList($list, ['created');
        // [
        //     ['a' => 0, 'created' => '1970-01-01T00:00:00+01:00'],
        //     ['a' => 0, 'created' => '1970-01-01T00:00:00+01:00'],
        // ]
    }
}