localheinz / clock
2.8.0
2024-02-18 10:08 UTC
Requires
- php: ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0
- psr/clock: ^1.0.0
Requires (Dev)
- ergebnis/composer-normalize: ^2.42.0
- ergebnis/license: ^2.4.0
- ergebnis/php-cs-fixer-config: ^6.22.0
- infection/infection: ~0.26.6
- phpunit/phpunit: ^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.6.16
- psalm/plugin-phpunit: ~0.18.4
- rector/rector: ^1.0.1
- vimeo/psalm: ^5.22.1
Provides
- psr/clock-implementation: 1.0.0
README
此项目提供了一个包含时钟抽象的composer
包,遵循Martin Fowler的建议,并与PSR-20兼容。
安装
运行
composer require ergebnis/clock
用法
SystemClock
创建一个新的系统时钟并使用它来确定当前时间
<?php declare(strict_types=1); use Ergebnis\Clock; $timeZone = new \DateTimeZone('Europe/Berlin'); $clock = new Clock\SystemClock($timeZone); $now = $clock->now();
FrozenClock
创建一个新的冻结时钟并在测试中使用它
<?php declare(strict_types=1); use Ergebnis\Clock; $now = new \DateTimeImmutable(); $clock = new Clock\FrozenClock($now); sleep(5); $stillNow = $clock->now();
或者,通过冻结系统时钟来创建一个新的冻结时钟
<?php declare(strict_types=1); use Ergebnis\Clock; $timeZone = new \DateTimeZone('Europe/Berlin'); $clock = new Clock\SystemClock($timeZone); $frozenClock = $clock->freeze(); $now = $clock->now(); sleep(5); $stillNow = $clock->now();
变更日志
此项目的维护者将此项目的显著更改记录在变更日志中。
贡献
此项目的维护者建议遵循贡献指南。
行为准则
此项目的维护者要求贡献者遵循行为准则。
一般支持政策
此项目的维护者提供有限的支持。
您可以通过赞助 @localheinz 或为此项目相关的服务请求发票来支持此项目的维护。
PHP版本支持政策
此项目支持具有活动和安全支持的PHP版本。
此项目的维护者在其首次发布后添加对PHP版本的支持,并在安全支持结束时停止对该PHP版本的支持。
安全政策
此项目有一个安全政策。
许可证
此项目使用MIT许可证。
鸣谢
此项目受到lcobucci/clock
(最初由Luís Cobucci以MIT许可证授权)的启发。
社交
关注Twitter上的@localheinz 和 @ergebnis。