zorachka / clock
PSR-20 ClockInterface实现
dev-main
2023-07-31 09:17 UTC
Requires
- php: ^8.1
- psr/clock: ^1.0
- webmozart/assert: ^1.11
- zorachka/container: ^3.1
This package is auto-updated.
Last update: 2024-09-30 01:41:21 UTC
README
Zorachka Clock
此包提供了PSR-20 ClockInterface的实现。
安装
您可以通过composer安装此包
composer require zorachka/clock
使用
将ClockInterface传递给您想要获取当前日期所需时区的方法的参数中
<?php declare(strict_types=1); namespace Project\Reviews\Application\AddReview; use Psr\Clock\ClockInterface; use Project\Reviews\Domain\Review; // ... final class Handler { private ClockInterface $clock; public function __construct( ClockInterface $clock, // ... ) { $this->clock = $clock; // ... } public function __invoke(Command $command): void { $review = Review::add( // ... $this->clock->now(), ); // ... } }
或直接使用
<?php declare(strict_types=1); $clock = new TimeZoneAwareClock(new DateTimeZone('Europe/Minsk')); $now = $clock->now();
如果您使用ClockServiceProvider,则默认的ClockInterface由具有UTC时区的TimeZoneAwareClock实现。
您可以通过在配置设置中设置时区来更改时区。
<?php declare(strict_types=1); use Zorachka\Container\ServiceProvider; use Zorachka\Clock\ClockConfig; new class implements ServiceProvider { // ... /** * @inheritDoc */ public static function getExtensions(): array { return [ ClockConfig::class => static function ($config, ContainerInterface $container): stdClass { $config->withTimezone('Europe/Minsk'); return $config; } ]; } }
测试
make test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查看我们的安全策略以了解如何报告安全漏洞。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。