С 5.x до 6.0
Содержание
Базы данных
Требования к БД
Минимальная версия MySQL теперь 8.0
Минимальная версия MariaDB теперь 10.6
Состояние удаления
Сущности теперь могут быть помечены как удалённые в базе данных. Это позволяет восстанавливать сущности из базы данных, если удаление было выполнено слишком рано.
Примечание
Из-за изменений в ElggEntity::delete() работа ElggFile::delete() была изменена. Ранее можно было создать символьную ссылку на файл в другом месте (другими способами, кроме как через Elgg), и при удалении ElggFile можно было удалить только ссылку, а не целевой файл. Это было изменено, и ElggFile::delete() теперь всегда удаляет как символьную ссылку, так и целевой файл.
См.также
Проверьте документацию database или документацию Возможность восстановления для получения дополнительной информации.
ES-модули
Мы больше не используем RequireJS для подключения AMD JavaScript-модулей. Вместо этого мы теперь полагаемся на нативное использование модулей ECMAScript. Все модули могут быть указаны под тем же именем, что и импортируемый модуль.
Composer
Требования к PHP
Минимальная версия PHP теперь 8.1. Также теперь требуется включить модуль intl.
PHPUnit
Elgg теперь использует PHPUnit 10.5. Возможно, вам потребуется обновить ваши тесты.
Аннотации
Из-за конфликта имён в псевдониме соединения по умолчанию между таблицами annotations и metadata, псевдоним соединения по умолчанию для таблицы annotations был изменён с n_table на a_table.
Если ваш код использует очень специфичные предложения (select, where, order_by и т.д.), вам нужно обновить ваш код. Если вы используете \Elgg\Database\QueryBuilder для частей вашего запроса, всё должно быть в порядке.
Колонка enabled
Колонка enabled для аннотаций была удалена. Аннотация больше не может быть включена или отключена. Вы больше не можете выполнять вызовы API enable и disable для аннотаций. Другие связанные функции API были удалены.
Иконки сущностей
Координаты обрезки
Координаты обрезки иконки по умолчанию (icon) теперь хранятся единообразно, так же как и для других типов иконок. Метаданные x1, x2, y1 и y2 больше не существуют. Используйте новую функцию \ElggEntity getIconCoordinates().
Icontime
Метаданные icontime были удалены из базы данных. Это был ненадёжный способ проверить, была ли загружена иконка. Это хранилось только для типа иконки icon.
Надёжный способ проверить, была ли загружена иконка — использовать функцию \ElggEntity::hasIcon().
Заголовки
Использование заголовков (h1, h2, h3) было пересмотрено во всей кодовой базе, чтобы убедиться, что они используются там, где это уместно, и в правильном порядке. Вы можете прочитать больше о предполагаемом использовании в Доступность.
Наиболее заметные изменения следующие:
H1 всегда является заголовком страницы (и больше не логотипом / названием сайта)
Модули (info, sidebar, widgets) используют заголовок H2
Заголовки H3 в заголовках сводок сущностей / отношений / аннотаций были заменены обычным текстовым элементом
Изменения в структуре CSS и HTML
Структура HTML страниц была изменена. Сводки сущностей и страницы полного просмотра сущностей были обернуты в элемент article. Элементы боковой панели теперь используют HTML-элемент aside. Модули (как виджеты или info-модули) теперь используют элемент section вместо div. Дублирующиеся классы CSS на одном элементе, такие как elgg-body и elgg-layout-body, были удалены.
Elgg предоставлял некоторые вспомогательные классы для создания сеточной разметки (как elgg-grid, elgg-col, elgg-row). Эти вспомогательные классы были удалены. Вы можете делать всё это с помощью обычного CSS, такого как display: grid.
Некоторые другие изменения стилей включают новый цвет фона для body, улучшенный стиль хлебных крошек и более простой чип блока владельца.
Изменения в функциях
Удалённые функции библиотеки
elgg_disable_annotations()была удаленаelgg_enable_annotations()была удаленаelgg_set_view_location()была удаленаelgg_strrchr()была удаленаelgg_strripos()была удаленаelgg_unrequire_css()была удалена. Используйтеelgg_unregister_external_file('css', $view)в качестве замены.
Удалённые функции классов
\ElggAnnotation->enable()\ElggAnnotation->disable()\ElggEntity->disableAnnotations()\ElggEntity->enableAnnotations()\ElggEntity->getTags()используйтеelgg_get_metadata()в качестве альтернативы.
Параметры функций библиотеки
elgg_get_entity_statistics()теперь требуетarrayиз$optionsдля использования сelgg_get_entities().У
elgg_get_simplecache_url()удалён второй аргумент ($subview). Полное имя$viewдолжно быть указано в качестве первого аргумента.
Различные изменения API
Интерфейс
\Elgg\EntityIconбыл удалён. Реализованные функции в\ElggEntityбыли перемещены в\Elgg\Traits\Entity\IconsИмена представлений из папки представлений „css“ или „js“ теперь всегда должны указываться полным именем представления (ранее можно было опустить первую папку, если это было „css“ или „js“)
Удалённые значения конфигурации
system_cache_loaded