Новое в Symfony 4.3: Валидатор часовых поясов

Список ограничений Symfony охватывает большинство общих требований к проверке веб-сайтов и приложений. Тем не менее, продолжаем прислушиваться к вашим отзывам и добавляем новые ограничения, предложенные сообществом.

В Symfony 4.3 мы добавили новое ограничение часового пояса, чтобы проверить, является ли данное значение одним из действительных часовых поясов, определенных PHP (например, Africa/Nairobi).

// src/Entity/UserSettings.php
namespace App\Entity;

use Symfony\Component\Validator\Constraints as Assert;

class UserSettings
{
    /**
     * @Assert\Timezone
     */
    protected $timezone;
}

В дополнение к общим опциям, определяемым большинством ограничений (groups, message, payload), это ограничение определяет две дополнительные опции: zone (для ограничения допустимых часовых поясов в географической зоне, такой как Азия или Австралия) и countryCode (для ограничения допустимых часовых поясов для одного страна):

// Consider valid only the timezones from countries in America continent

/** @Assert\Timezone(zone=\DateTimeZone::AMERICA) */
protected $timezone;

// Consider valid only the Chinese timezones

/** @Assert\Timezone(zone=\DateTimeZone::PER_COUNTRY, countryCode="CN") */
protected $timezone;