Новое в Symfony 5.1: Разные улучшения (Часть 2)

Команда YAML linter

Symfony включает в себя линтер, который проверяет правильность синтаксиса ваших файлов конфигурации YAML. Он доступен под командой lint:yaml, но требует использования всего консольного приложения проекта Symfony.

В Symfony 5.1 добавили приложение с одной командой под названием yaml-lint, чтобы вы могли линтировать файлы YAML, используя только компоненты Yaml и Console:

php vendor/bin/yaml-lint translations/

Улучшенный почтовый транспорт RoundRobin

Если ваше приложение не использует компонент Messenger для отправки электронных писем и отправляет только одно сообщение, транспорт RoundRobin не работает должным образом, поскольку всегда используется его первый транспорт. В Symfony 5.1 улучшили его, чтобы первый транспорт выбирался случайным образом.

Отдельный канал журнала для устаревших версий

Сообщения об устаревании являются ключом к обещанию обратной совместимости Symfony, которое обеспечивает плавное обновление между младшими версиями Symfony. Однако иногда видеть в файлах журналов множество устаревших рекомендаций невозможно. В других проектах вы можете сосредоточиться исключительно на устаревших функциях, поэтому другие сообщения журнала только усложняют ситуацию.

Вот почему в Symfony 5.1 добавили некоторую необязательную конфигурацию в файл config/packages/prod/monolog.yaml, чтобы регистрировать устаревшие версии в отдельном файле. Новая конфигурация закомментирована по умолчанию, поэтому вам нужно явно включить ее, если вы хотите ее использовать.

Добавлена поддержка почтовых тегов/метаданных

Некоторые почтовые службы позволяют определять теги/метаданные в ваших сообщениях для добавления любых данных, которые могут быть полезны для вашего приложения. В Symfony 5.1 добавили их поддержку в почтовых программах, таких как Postmark и Mailgun:

use Symfony\Component\Mailer\Header\MetadataHeader;
use Symfony\Component\Mailer\Header\TagHeader;

$email->getHeaders()->add(new TagHeader('password-reset'));
$email->getHeaders()->add(new MetadataHeader('Color', 'blue'));
$email->getHeaders()->add(new MetadataHeader('Client-ID', '12345'));

В почтовых программах, поддерживающих эти функции, вы увидите данные в настраиваемых заголовках или полезной нагрузке сообщений. В остальных почтовых программах вы увидите их как пользовательские заголовки:

X-Tag: password-reset
X-Metadata-Color: blue
X-Metadata-Client-ID: 12345