• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

NexusPHP / framework / 15768680547

27 May 2025 01:19PM UTC coverage: 100.0%. Remained the same
15768680547

push

github

paulbalandan
Add clock extension API for writing time-sensitive classes

30 of 30 new or added lines in 4 files covered. (100.0%)

988 of 988 relevant lines covered (100.0%)

7.0 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/src/Nexus/Clock/SystemClock.php
1
<?php
2

3
declare(strict_types=1);
4

5
/**
6
 * This file is part of the Nexus framework.
7
 *
8
 * (c) John Paul E. Balandan, CPA <paulbalandan@gmail.com>
9
 *
10
 * For the full copyright and license information, please view
11
 * the LICENSE file that was distributed with this source code.
12
 */
13

14
namespace Nexus\Clock;
15

16
/**
17
 * A clock that relies on the system time.
18
 *
19
 * @immutable
20
 */
21
final readonly class SystemClock implements Clock
22
{
23
    private \DateTimeZone $timezone;
24

25
    public function __construct(\DateTimeZone|string $timezone)
26
    {
27
        $this->timezone = \is_string($timezone) ? new \DateTimeZone($timezone) : $timezone;
8✔
28
    }
29

30
    public function now(): \DateTimeImmutable
31
    {
32
        return new \DateTimeImmutable('now', $this->timezone);
8✔
33
    }
34

35
    public function sleep(float|int $seconds): void
36
    {
37
        if ($seconds <= 0) {
4✔
38
            return;
2✔
39
        }
40

41
        $microseconds = (int) ($seconds * 1_000_000);
2✔
42
        $seconds = (int) floor($microseconds / 1_000_000);
2✔
43
        $microseconds %= 1_000_000;
2✔
44

45
        sleep($seconds);
2✔
46
        usleep($microseconds);
2✔
47
    }
48
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc