Вышла новая версия Doctrine DBAL 3.2.0

Вышла очередная минорная версия 3.2.0 Doctrine DBAL. Она фокусируется на новых функциях, улучшениях и устаревании старых API. Полный список изменения можно посмотреть тут.

Вышла новая версия Doctrine DBAL 3.2.0

Сравнение схемы с учетом платформы

Раньше при генерации кода схемы не учитывались нюансы используемой платформы и всегда создавался один и тот же универсальный код.

// old schema
$column1 = new Column('settings', Type::getType('json'));

// new schema
$column2 = new Column('settings', Type::getType('json'), ['length' => 16777215]);

К примеру выше указанные примеры раньше не давали никакой разницы и всегда генерилось бы поле типа TEXT.
Теперь же ограничение по длине позволит указать тип поля MEDIUMTEXT если ваша платформа это поддерживает.

Поддержка psr/cache

Библиотека Doctrine Cache закрывается. С этой версии появляется возможность использовать совместимую с PSR-6 реализацию кеширования результатов.
Рекомендуется всем перейти на новую реализацию через psr/cache.

Поддержка psr/log

Интерфейс SQLLogger был давно разработан и уже устарел. Он не предоставляет всей гибкости необходимой при логировании собыйтий на разных уровнях.
В новой версии добавлена возможность делигировать логирование в систему совместимую с PSR-3.

Всегда кэшировать полный результат

До этой версии результат кешировался только после полного извлечения всех наборов запрашиваемых данных. Это приводилоо к некоторым проблемам.
Теперь результаты запросов кешируются сразу, как только будут получены из БД.
Это значительно упрощает уровень кэширования и делает его поведение более простым.

События для транзакций

В новой версии DBAL представлены еще три события, связанные с транзакциями:

  • onTransactionBegin
  • onTransactionCommit
  • onTransactionRollBack

Ссылка на источник: https://www.doctrine-project.org/2021/11/26/dbal-3.2.0.html

Дата публикации: 2021-11-26

Просмотры: 25
Подписка на новости
Узнавайте о новых статьях первыми.
Профиль