CloudCastle Clock

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

DatePoint — momento del reloj de la aplicación

Propósito

Una subclase de DateTimeImmutable: new DatePoint() toma el «ahora» del reloj global (ClockHolder); los errores de análisis son excepciones tipadas en lugar de false con un warning.

Para qué y cómo usarlo

Un reemplazo de new DateTimeImmutable() en código que debe ser testeable: los momentos obedecen automáticamente al reloj sustituido.

Ejemplo

ClockHolder::set(MockClock::from('2026-01-01 00:00:00', 'UTC'));
$point = new DatePoint();                 // 2026-01-01 from the mock clock
$later = new DatePoint('+1 hour');
DatePoint::createFromFormat('Y-m-d', 'garbage');  // typed exception

Antipatrones

En los servicios con DI es preferible un ClockInterface explícito; DatePoint es un puente para el código sin inyección.

Ciclo de vida

flowchart LR
    A[ClockHolder] -->|now| B[new DatePoint]
    B --> C[DateTimeImmutable API]
    B -->|modify/createFromFormat errors| D[/InvalidClockValueException/]

Comparación de la característica con alternativas

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Momento del reloj global✅✅✅❌❌❌
Errores de análisis tipados✅✅✅❌❌❌
API completa de DateTimeImmutable✅✅✅❌❌❌
Cero dependencias de implementación✅❌❌❌❌❌
Total🏆 433000

← Volver a la lista de características


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano