org_heigl/clock

PSR-20的最小化示例实现

dev-main 2021-07-15 06:47 UTC

This package is auto-updated.

Last update: 2024-09-15 13:21:18 UTC


README

PSR-20的最小化示例实现。

这个小巧的包允许你在代码中注入一个时钟,该时钟可以提供当前的日期和时间(对生产代码很有用)或者一个预定义的日期和时间(对测试很有用)。

用法

use Org_Heigl\Clock\FrozenClock;
use Org_Heigl\Clock\SystemClock;
use Psr\Clock\ClockInterface;

class App 
{
	public function main(ClockInterface $clock): string
	{
	    return sprintf(
	        'The current date and time is %s', 
	        $clock->now()->format('Y-m-d H:i:s.u')
	    );
	}
}

$app = new App();
$clock = new SystemClock();

var_Dump($app->main($clock) === $app->main($clock));
// This will most certainly be "false"

$clock = new FrozenClock(new DateTimeImmutable());
var_dump($app->main($clock) === $app->main($clock));
// This will always be true

安装

像这样通过composer安装包

composer require org_heigl/clock