Некоторые компоненты Symfony (например, Cache, Lock, Messenger и т. д.) Могут хранить свое содержимое в базах данных с помощью Doctrine ORM. Для работы требуется некоторая ручная настройка. Например, чтобы хранить сеансы в базе данных, вы должны создать таблицу, в которой хранится информация.
Команда Symfony большие поклонники автоматизации, поэтому решили автоматизировать все это в Symfony 5.1. Идея состоит в том, чтобы реализовать некоторых подписчиков событий, которые прослушивают расширенные события Doctrine (например, Events::onSchemaCreateTable
из Doctrine DBAL и ToolEvents::postGenerateSchema
из Doctrine ORM) и внедрять код SQL, необходимый для создания таблиц базы данных, необходимых каждому компоненту.
Эти автоматические таблицы базы данных создаются только тогда, когда они вам действительно нужны. Рассмотрим, например, компонент Messenger. Если вы настроите транспорт Doctrine и выполните команду make:migration
, база данных будет создана. В противном случае в вашей таблице базы данных ничего не изменится. То же самое происходит при использовании PdoAdapter из компонента Cache, PdoStore из компонента Lock и т. д.
Документы Symfony скоро будут обновлены, чтобы отразить эту автоматизацию и упростить настройку, необходимую для некоторых компонентов.