Дата релиза: 4 марта 2020 г.
¶Добавлен новый объект AttributeHelper
Добавлен новый объект Drupal\Core\Template\AttributeHelper
который позволит управлять атрибутами независимо от того, объявлены они как массив, или как Attribute
.
Класс предоставляет два статических метода:
-
::attributeExists
: Проверяет на наличие атрибута. -
::mergeCollections
: Объединяет два значения, независимо, массивы они или объекты, или два разных значения. Если первое значение является объектомAttribute
, то результатом будет тоже объект, если массив — то будет возвращён массив.
Также для класса Attribute
было добавлено два новых метода:
-
::hasAttribute
: Проверяет на наличие атрибута. -
::merge
: Объединяет свои значения со значениями другогоAttribute
объекта.
¶Оформление и темизация
- #3111729 Шаблоны и CSS Stable темы оформления приведённые к их оригиналу и улучшена документация.
¶Composer
- #3103918 Composer плагины Drupal теперь являются внутренним API.
¶Claro
-
#3111390 Исправлена ошибка в рендер массиве из-за которой не происходило добавление класса
media-library-add-form--oembed
.
¶Entity API
- #3056539 Исправлена неполадка приводящая к ошибке когда происходит обновление не ревизионной сущности в ревизионную, но при этом у сущности есть не ревизионные поля хранимые в отдельных таблицах.
¶Editor
-
#3111658 Исправлен комментарий для
editor_field_formatter_info_alter()
который по ошибке указывал что это реализацияhook_form_FORM_ID_alter()
.
¶Field
-
#3116553 Для
PluginSettingsInterface
убрана метка что интерфейс устаревший, так как он активно используется в ядре. Рекомендуется не использовать данный интерфейс в своих модулях, а вместо этого использовать\Drupal\Component\Plugin\ConfigurableInterface
. В будущемPluginSettingsInterface
всё равно будет удалён.
¶Layout Builder
- #3108640 Исправлена неполадка, при которой, если доступа к связанной сущности блока нет, не собирались кеш метаданные.
- #3088077 Исправлена неполадка, при которой, если блок возвращает пустой результат, не собирались кеш метаданные.
¶Menu Link Content
-
#3067576 Улучшена миграция
<nolink>
ссылок меню.
¶Migration
- #3095922 Улучшена миграция комментариев из Drupal 7 для которых не указан язык.
- #3100046 Улучшена миграция поля с опциями из Drupal 7 для которых включена поддержка i18n.
¶Path alias
-
#3114366 Теперь при сохранении сущности синонима будет вызываться ошибка о несоответствии схемы БД если до сих пор не были запущены обновления синонимов из Drupal 8.8.0. Для того чтобы отключить данное поведение, вы можете добавить настройку
$settings['system.path_alias_schema_check'] = FALSE;
в settings.php.
¶Taxonomy
-
#3059387 Исправлена неполадка, из-за которой предпросмотр нового термина (например в Layout Builder) приводил к исключению
EntityMalformedException
.
¶Views
-
#3065720 Добавлена обработка двойного слэша (
//
) в начале пути. Теперь не важно в каком формате введён путь, он будет иметь лишь один. -
#2989609 Исправлена опечатка в переменной
$filter_hander
ExposedFormPluginBase
.
¶Update
-
#3116198 Класс
ProjectCoreCompatibility
помечен финальным. - #3111929 Исправлена неполадка, из-за которой могли рекомендоваться dev, alpha, beta и rc если не обнаружен более свежий стабильный релиз.
- #3102724 Улучшен вывод информации о совместимости модуля с ядром. Теперь показываются ограничения, с какой по какую версию совместим модуль, а также, до какой версии необходимо обновить ядро, если текущая версия несовместима.
-
#3074993 URL для проверки обновлений изменён с текущей версии ядра получаемой из
\Drupal::CORE_COMPATIBILITY
(https://updates.drupal.org/release-history/paragraphs/8.x
) наcurrent
(https://updates.drupal.org/release-history/paragraphs/current
). Данные адреса возвращают разный XML, в связи с этим весь код и тесты были исправлены на новый вариант. -
#3096078, #3102724, #3101547 Обновлён шаблон
update-version.html.twig
для поддержкиcore_compatibility_details
.
¶Workspaces
-
#3098427 Удаление
workspace_association
сущности перенесено изworkspaces_update_8803()
вworkspaces_post_update_remove_association_schema_data()
для избежания конфликтов в процессе обновления и сохранения обратной совместимости.
¶Тестирование
-
#3113292 Добавлены тесты для проверки поведения при обновлении модуля со статусами:
UpdateManagerInterface::NOT_SECURE
,UpdateManagerInterface::REVOKED
,UpdateManagerInterface::NOT_SUPPORTED
. -
#3104372 Сообщения об устаревшем коде в
Drupal\FunctionalTests\AssertLegacyTrait
отформатированны в соответствии с требованиями стандарта. -
#3113509 Аннотации
@expectedException*
заменены на соответствующие методы, для будущей совместимости с PHPUnit 9. -
#2871374 Улучшен тест
SelectTest::testVulnerableComment
. -
#3106215 Удалён приватный метод
UserBlocksTest::updateAccess
который нигде не используется. - #3086644 Добавлены тесты для сборки Composer шаблонов Drupal.
-
#3063912
UpdatePathTestBase::runUpdates
перемещён в трейтUpdatePathTestTrait
. -
#3090017 Добавлен трейт
RdfParsingTrait
.
¶Прочие изменения
-
#3098718 Теперь при сохранении сущности синонима будет вызываться ошибка о несоответствии схемы БД если до сих пор не были запущены обновления синонимов из Drupal 8.8.0. Для того чтобы отключить данное поведение, вы можете добавить настройку
$settings['system.path_alias_schema_check'] = FALSE;
в settings.php. - #3101299 Исправлена неполадка, из-за которой было невозможно устанавливать модули из .zip архивов.
- #3105327 CKEditor обновлён до версии 4.13.1.
- #2991207 Улучшен отчёт о состоянии текущей версии Drupal. Теперь указывается, поддерживается ли текущая версия сайта и до какой версии. Для старых версий выводится предупреждение о необходимости обновления и до какой версии.
- #3110186 На странице с отчётами улучшены описания для новых версий Drupal.
-
#3114545 Исправлена документация для
RoleInterface::ANONYMOUS_ID
иRoleInterface::AUTHENTICATED_ID
. В них было старое упоминание таблицыrole
, но сейчас у нас для ролей используются сущности. -
#3104071 Исправлена документация для
DrupalDateTime::$formatTranslationCache
. Было неверное указание типа в виде строки, исправлено на массив и добавлены примеры. -
#3105095 Исправлена документация для
ElementInfoManagerInterface::getInfoProperty
. -
#3114116 Устаревшие переменные и функции в
ajax.es6.js
помеченные на удаление в Drupal 9 продлены до Drupal 10. - #3113236 Исправлена некорректная ссылка на документацию в Help Topics.
-
#3113476 Улучшено получение времени через
Time::getRequestTime
. Если в момент обращения ещё не получен объект запроса, то производится попытка получить значение из$_SERVER['REQUEST_TIME']
, если и то значение недоступно, получается системное время. -
#3113284 Устаревшая константа
REQUEST_TIME
будет удалена в Drupal 10, а не Drupal 9, как планировалось ранее. -
#3110104 Исправлена документация для
RouteProvider::getRouteByName
-
#3112829 Использование
};
исправлено на}
в соответствии с требованиями стандартов. -
#3108540 Комментарии об устаревшем коде в
database.inc
приведены в соответствии со стандартом. -
#2809237 Для всех методов трейта
AllowedTagsXssTrait
, который помечен как устаревший, добавлены вызовы ошибок с информацией об устаревшем коде. -
#3112263 Константы
REGIONS_*
больше не признаны устаревшими так как используются не только в модуле Block. -
#2738879 Исправлена неполадка из-за которой некоторые
hook_update_N()
функции могли быть не обнаружены и не вызывались. - #3086374 Drupal ядро теперь полностью совместимо с PHP 7.4.
-
#3111504
AccessResult::cacheUntilEntityChanges
теперь вызывает ошибку об устаревшем методе. - #3091518 webchick убрана из MAINTAINERS.txt как координатор Admin UI.
¶Ссылки
- Drupal 8.8.3 (англ.), drupal.org, 4 марта 2020