cloud-castle/clock — PSR-20 часы, длительности, дедлайны и календарь для PHP 8.1+
Обзор Composer-пакета cloud-castle/clock: управляемое время для PHP 8.1–8.5. Код, который вызывает new DateTimeImmutable напрямую, трудно тестировать: проверки TTL токенов, дедлайнов и повторных попыток превращаются в тесты со sleep. Пакет делает время внедряемой зависимостью и добавляет календарную арифметику уровня Carbon без ICU и ext-intl. В видео: • установка и быстрый старт; • 11 реализаций часов PSR-20: System, Frozen, Mock, Monotonic, Step, Queue, Callback, адаптер чужих часов; • декораторы Offset, Scaled и Truncating; • монотонные часы и реальный sleep/sleepUntil с досыпанием после сигналов; • TimeSpan: наносекундные длительности, ISO 8601, контроль переполнения, forHumans на 6 языках; • Deadline и Stopwatch; • глобальные часы ClockHolder, DatePoint и ClockAwareTrait; • ClockSensitiveTrait для PHPUnit; • CalendarDate: addMonthsNoOverflow, границы периодов, diffForHumans, isoFormat; • CalendarPeriod: ленивая итерация без переполнения месяцев (31 янв → 28 фев → 31 мар); • макросы CalendarDate и подключение легаси-часов через Clock::adapt(); • архитектура и контракты; • производительность, память и утечки — честные замеры против 5 аналогов; • безопасность: CWE-20/117/190, composer audit, таблица стандартов composer-пакетов; • качество кода: PHPStan max, Psalm 1, покрытие 100%, Infection MSI 100%; • сравнение с symfony/clock, nesbot/carbon, lcobucci/clock, beste/clock, ergebnis/clock; • честные минусы и рекомендации по применению. Пакет: https://packagist.org/packages/cloud-castle/clock Исходники: https://gitverse.ru/cloud-castle/clock Документация / wiki: https://gitverse.ru/cloud-castle/clock/wiki Команда установки: composer require cloud-castle/clock Таймкоды: 00:00 Введение 01:00 Установка 01:50 Быстрый старт 02:40 Одиннадцать реализаций часов 03:31 Декораторы времени 04:19 Монотонные часы и реальный сон 05:09 TimeSpan — точные длительности 06:01 Deadline и Stopwatch 06:52 Глобальные часы и DatePoint 07:40 ClockSensitiveTrait для PHPUnit 08:26 CalendarDate — календарь уровня Carbon 09:19 CalendarPeriod — периоды без ловушек 10:11 Макросы и легаси-часы 11:00 Архитектура 11:54 Производительность и память 12:47 Безопасность 13:40 Качество кода и сравнение 14:35 Итоги Теги: PHP, PSR-20, clock, часы, время, тестирование, PHPUnit, Carbon, Composer, cloud-castle, Packagist, PHP 8.1, open source, backend
Название:
cloud-castle/clock — PSR-20 часы, длительности, дедлайны и календарь для PHP 8.1+
Категория:
Технологии и интернет