stella-maris / clock
PSR-20 Clock-Interface 建议版本
0.1.7
2022-11-25 16:15 UTC
Requires
- php: ^7.0|^8.0
- psr/clock: ^1.0
README
PSR-20 clock-interface 的实现
安装
composer require stella-maris/clock
使用
此接口允许注入提供时钟接口的任何一种实现。
use StellaMaris/Clock/CLockInterface; final class PastChecker { public function __construct(private ClockInterface $clock) {} public function hasDateTimeAlreadyPassed(DateTimeImmutable $item): bool { return $item < $this->clock->now(); } }
为什么
在框架互操作性小组(FIG)中,一个工作组于 2021 年开始创建一个 ClockInterface。该工作进展相当迅速,到 2021 年中旬,接口基本上已经最终确定。
那么,这个接口为何重要?
自 2021 年中旬以来,工作组没有进一步开展工作。所有对编辑者和赞助者的请求都没有得到任何回应。
因此,在官方工作组渠道进行大量讨论后,我决定通过在 packagist 上提供目前达成一致的接口作为单独的包来推出这个接口。
那么,当 PSR 接口提供时怎么办?
有两种可能性
- 要么接口将像目前一样由 FIG 提供,那么这个接口将扩展 PSR-20,以便所有该接口的实现都将立即兼容 PSR20。
- 或者 PSR20 接口将有所不同:那么所有当前实现将需要为 PSR20 兼容提供单独的实现,并且该接口将简单地与 PSR20 接口共存。
文档
有关接口的更多信息,请查看 PSR-20 文档,地址为 https://github.com/php-fig/fig-standards/blob/master/proposed/clock.md 和 https://github.com/php-fig/fig-standards/blob/master/proposed/clock-meta.md