ergebnis / 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。