Тестирование функций, связанных со временем, затруднено и приводит к появлению ошибок в тестах. Именно поэтому в Symfony 2.8, более шести лет назад, мы ввели для тестов мокинг Clock. В Symfony 6.2 мы расширяем эти усилия, представив новый компонент под названием Clock.
Этот новый компонент улучшит тестируемость вашего кода, чувствительного ко времени. Группа PHP-FIG работает над аналогичным предложением в PSR-20, поэтому мы разработали компонент Symfony Clock для облегчения совместимости с ним.
Этот компонент определяет следующий интерфейс ClockInterface:
namespace Symfony\Component\Clock;
interface ClockInterface
{
// returns the current datetime (it's designed to be compatible with PSR-20)
public function now(): \DateTimeImmutable;
// advances the clock by the provided number of seconds
public function sleep(float|int $seconds): void;
// changes the time zone returned by now()
public function withTimeZone(\DateTimeZone|string $timezone): static;
}
В дополнение к интерфейсу, компонент предоставляет три конкретные реализации:
В связи с этим, в Symfony 6.2 мы также улучшили существующий класс ClockMock компонента PHPUnit Bridge. Кристиан Флотманн добавил поддержку имитации функции hrtime().
Обработка сигналов с помощью Symfony Command
15364
768
Symfony 6.2 - новые возможности
14463
753
Новое в Symfony 6.1: Более простое расширение и настройка бандлов
15678
783
Новое в Symfony 6.1: динамический переключатель локали (Locale Switcher)
12800
640
Новое в Symfony 6.1: компонент HtmlSanitizer
13155
657
Для Symfony 6.1 потребуется PHP версии 8.1 из-за предзагрузки классов
8642
432
Внедрение поддержки Docker в Symfony
14402
720
Приложение на Symfony и Twitter Bootsrap 4 [видео]
10546
527