nanaweb/clock
Composer 安装命令:
composer require nanaweb/clock
包简介
Clock object for object-oriented programming
README 文档
README
Install
$ composer require nanaweb/clock
Usage
now()
Inject to classes that needs current timestamp, and call $this->clock->now() to get current timestamp.
<?php class SomeClass { private $clock; public function __construct(\Nanaweb\Clock $clock) { $this->clock = $clock; } public function getFiveHourLater() { /** @var \DateTimeImmutable $now */ $now = $this->clock->now(); return $now->add(new \DateInterval('PT5H')); // } }
today()
Inject to classes that needs current date, and call $this->clock->today() to get current date.
<?php class SomeClass2 { private $clock; public function __construct(\Nanaweb\Clock $clock) { $this->clock = $clock; } public function getFiveDaysAgo() { /** @var \DateTimeImmutable $today */ $today = $this->clock->today(); return $today->sub(new \DateInterval('P5D')); // 00:00:00 of five days ago } }
why should I use Clock?
To test time-sensitive classes.
<?php class SomeClassTest extends TestCase { public function test_fiveHoursAgo() { $clockP = $this->prophesize(\Nanaweb\Clock::class); $clockP->now()->willReturn(new \DateTimeImmutable('2020-05-16 10:00:00'))->shouldBeCalled(); $SUT = new SomeClass($clockP->reveal()); $this->assertEquals('2020-05-16 15:00:00', $SUT->getFiveHoursLater()); } }
统计信息
- 总下载量: 56
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-16