-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
github-actions[bot] edited this page Jul 14, 2026
·
1 revision
Пакет cloudcastle/clock работает сразу после установки — глобальной конфигурации нет намеренно: всё поведение задаётся выбором класса часов и параметрами конструкторов.
| Что настраивается | Где | Пример |
|---|---|---|
| Таймзона часов | фабрики/конструкторы | SystemClock::fromTimezone('Europe/Moscow') |
| Таймзона выдачи любых часов | withTimezone() |
$clock->withTimezone('UTC') |
| Часы приложения по умолчанию |
ClockHolder::set() в bootstrap |
ClockHolder::set(SystemClock::utc()) |
| Смещение времени | OffsetClock |
OffsetClock::aheadBy($clock, 86_400.0) |
| Масштаб времени | ScaledClock |
new ScaledClock($clock, 60.0) |
| Границы усечения |
TruncatingClock + TruncationUnit
|
new TruncatingClock($clock, TruncationUnit::Day) |
| Часы в сервисе | ClockAwareTrait::setClock() |
сеттер-инъекция из DI |
use CloudCastle\Clock\ClockHolder;
use CloudCastle\Clock\SystemClock;
// Одна строка в точке входа: дальше время читается через ClockHolder/Clock.
ClockHolder::set(SystemClock::utc());use CloudCastle\Clock\ClockHolder;
use CloudCastle\Clock\MockClock;
protected function setUp(): void
{
ClockHolder::set(MockClock::from('2026-01-01 00:00:00', 'UTC'));
}
protected function tearDown(): void
{
ClockHolder::reset(); // изоляция: время не утекает между тестами
}CloudCastle Clock · · PHP 8.1+
GitHub · Packagist · Releases · Discussions · Issues
Email · Telegram · VK · Сетка · 💜 Поддержать проект
Исходники Wiki — каталог wiki/ в репозитории (синхронизация через GitHub Actions)