clock
Provides a simple abstraction of a clock, following the suggestion by Martin Fowler.
Installation
Run
$ composer require ergebnis/clock
Usage
SystemClock
Create a new system clock and use it to determine the current time:
<?php
use Ergebnis\Clock;
$timeZone = new \DateTimeZone('Europe/Berlin');
$clock = new Clock\SystemClock($timeZone);
$now = $clock->now();
FrozenClock
Create a new frozen clock and use it in tests:
<?php
use Ergebnis\Clock;
$now = new \DateTimeImmutable();
$clock = new Clock\FrozenClock($now);
sleep(5);
$stillNow = $clock->now();
Alternatively, create a new frozen clock by freezing a system clock:
<?php
use Ergebnis\Clock;
$timeZone = new \DateTimeZone('Europe/Berlin');
$clock = new Clock\SystemClock($timeZone);
$frozenClock = $clock->freeze();
$now = $clock->now();
sleep(5);
$stillNow = $clock->now();
Changelog
Please have a look at CHANGELOG.md
.
Contributing
Please have a look at CONTRIBUTING.md
.
Code of Conduct
Please have a look at CODE_OF_CONDUCT.md
.
License
This package is licensed using the MIT License.
Please have a look at LICENSE.md
.
Credits
This project is inspired by lcobucci/clock
(originally licensed under MIT by Luís Cobucci).