⌨️
Сегодня должен состояться релиз Drupal 9.2.0Выбрал наиболее интересные изменения по моему мнению:
- Все оставшиеся библиотеки jQuery UI помечены устаревшими.
- Сообщения, выводимые в процессе восстановления пароля были изменены таким образом, что по ним теперь невозможно определить, существует ли пользователь с указанной почтой или нет.
- Введены новые хуки для изменения форм виджетов полей, а те что были ранее были помечены устаревшими. Новые реализации позволяют достичь большей гибкости.
- Добавлен новый хук
hook_entity_form_mode_alter()
, при помощи которого можно определять в рантайме какой режим отображения формы создания и редактирования сущности будет использоваться в различных ситуациях.
- Плагин Composer
drupal/core-vendor-hardening теперь позволяет чистить пакеты за пределами
vendor
директории.
- Файловые поля теперь поддерживают нижнее подчёркивание (
_
) и точки (
.
) при настройке разрешенных форматов загрузки
. Теперь можно указать расширения
`.x_y_z` и
.tar.gz
.
- GDToolkit теперь поддерживает расширение WebP. Это значит, что вы можете конвертировать изображения в данный формат при помощи эффектов
стилей изображений.
- README файл Drupal ядра теперь в формате Markdown. 😎
- Добавлено новое событие
FileUploadSanitizeNameEvent
для сантизиации имён файлов.
- В сервис
pager.manager
, отвечающий за пагинацию, добавлены новые хелпер методы. Также для класса подключения к БД
Connection
добавлен метод
::getPagerManager()
для быстрого доступа к данному сервису.
- Добавлена новая библиотека
Tabbable (
core/tabbable
).
- jQuery Once помечен устаревшим, а в качестве замены разработана и добавлена в ядро библиотека
Drupal Once (
@drupal/once
в npm), которая написана на Vanilla JS.
- Добавлена новая AJAX команда
FocusFirstCommand
, которая позволяет сфокусировать первый подходящий элемент для указанного селектора.
- 📢 Добавлен генератор стартовой темы!
php core/scripts/drupal generate-theme mytheme
- при помощи данной команды будет создана тема
mytheme
основанная на Classy и stable9 в качестве базовой темы (все стили и шаблоны будут скопированы из Classy в процессе генерации).
- ⚠️ Если ваша тема использует Classy в качестве базовой, учтите, что предыдуще изменение подразумевает то, что Classy теперь может активно меняться в минорных релизах, что может привести к проблемам.
- Использование Entity Query без явного вызова
::accessCheck()
помечено устаревшим. Теперь вы обязаны указывать необходимость проверки прав доступа.
- Drupal теперь будет сообщать о критических обновлениях безопасности (SA, PSA) на странице отчёта состояния сайта, даже если модуль Update отключен. Данное поведение можно отключить в
settings.php:
$config['system.advisories']['enabled'] = FALSE;
- Drupal теперь отвечает на все запросы с заголовком
Permissions-Policy: interest-cohort=()
, который направлен на отключение
Google FLoC. Данный заголовок отключается в settings.php:
$settings['block_interest_cohort'] = FALSE;
- jQuery Joyride заменён на
ShepherdJS. Если вы используете Tour модуль в своих целях, уделите особое внимание данному изменению, может быть регрессия.
- Многострочные значения в YAML теперь экспортируются без
\r\n
.
- Множественные изменения и улучшения для темы Olivero.
- Теперь,
ленивые строители (
#lazy_builder
) что содержат что-то отличное от рендер массива будут выбрасывать исключение.
- Для модуля User добавлено новое разрешение
view user email addresses
, позволяющее просматривать email адреса пользователей тем, у кого есть роль с данным разрешением. Ранее такая возможность была исключительно у администратора.
- Рекомендуемая версия PHP увеличена до 7.4. 7.3 - до сих пор будет работать корректно.
И множество других изменений!