Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EventSauce Clock

This is the EventSauce Clock component, which provides a straight forward way to consume time. Using a clock makes your code easier to test.

Installation

composer require eventsauce/clock

Usage

This package provides two implementations of the EventSauce\Clock\Clock interface.


In your production configuration, use the EventSauce\Clock\SystemClock implementation.

<?php

use EventSauce\Clock\SystemClock;

$clock = new SystemClock(new DateTimeZone('UTC') /* timezone optional */);

$dateTimeImmutable = $clock->now();
$timezone = $clock->timeZone();

In your test configuration, use the EventSauce\Clock\TestClock implementation.

<?php

use EventSauce\Clock\TestClock;

$testClock = new TestClock();
$dateTimeImmutable = $testClock->now();
$timezone = $testClock->timeZone();

// move the clock forward
$testClock->moveForward(DateInterval::createFromDateString('1 day'));

// Skip to system "now"
$testClock->tick();

// Fixate the clock to a specific date and time
$testClock->fixate('1987-11-24 18:33:10');

About

Consume time from a Clock.

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages