幽灵作者 / 时钟
为PHP提供时钟实现
3.0.0
2024-06-21 23:42 UTC
Requires
- php: >=8.3
Requires (Dev)
- ghostwriter/coding-standard: dev-main
- ghostwriter/psalm-plugin: ^0.2.0
This package is auto-updated.
Last update: 2024-08-31 15:28:49 UTC
README
为PHP提供不可变时钟实现
安装
您可以通过composer安装此包
composer require ghostwriter/clock
如果您觉得这个仓库有用,请星标 ⭐️
您也可以星标 (🌟) 这个仓库,以便以后更容易找到。
用法
<?php // Internally uses SystemClock::new(new DateTimeZone(date_default_timezone_get())); date_default_timezone_set('America/Los_Angeles'); $systemClock = SystemClock::new(); $systemClock->now(); // DateTimeImmutable $systemClock->now()->getTimezone()->getName(); // America/Los_Angeles date_default_timezone_set('America/New_York'); $systemClock = SystemClock::new(); $systemClock->now(); // DateTimeImmutable $systemClock->now()->getTimezone()->getName(); // America/New_York $localizedClock = LocalizedClock::new(); $localizedClock->now(); // DateTimeImmutable $localizedClock->now()->getTimezone()->getName(); // UTC $localizedClock = LocalizedClock::new(new DateTimeZone('Africa/Addis_Ababa')); $localizedClock->now(); // DateTimeImmutable $localizedClock->now()->getTimezone()->getName(); // Africa/Addis_Ababa $frozenClock = FrozenClock::new(new DateTimeImmutable('now', new DateTimeZone('UTC'))); $frozenClock->now(); // DateTimeImmutable $frozenClock->now()->getTimezone()->getName(); // UTC
API
interface ClockInterface { public function freeze(): FrozenClockInterface; public function now(): DateTimeImmutable; } interface FrozenClockInterface extends ClockInterface { public static function new(DateTimeImmutable $dateTimeImmutable): self; } interface LocalizedClockInterface extends ClockInterface { public static function new(DateTimeZone $dateTimeZone): self; } interface SystemClockInterface extends ClockInterface { public static function new(): self; }
更新日志
有关最近更改的更多信息,请参阅 CHANGELOG.md
安全
如果您发现任何与安全相关的问题,请通过电子邮件 nathanael.esayeas@protonmail.com
或创建一个 安全通告,而不是使用问题跟踪器。
许可证
BSD-3-Clause。有关更多信息,请参阅 许可证文件