С 3.2 на 3.3
Содержание
Версия PHP
PHP 7.1 достиг конца жизненного цикла в декабре 2019 года. Чтобы обеспечить безопасность сайтов на Elgg, мы теперь требуем PHP 7.2 для новых установок.
При обновлении с предыдущей установки Elgg убедитесь, что у вас установлена правильная версия PHP.
Чтобы иметь возможность тестировать Elgg на PHP 7.4, нам пришлось обновить набор тестов PHPUnit до версии 8.5. Это может потребовать некоторой переработки ваших собственных модульных/интеграционных тестов.
Более простое использование макета „default“
В настоящее время распространённым шаблоном является следующее:
$title = 'All blogs';
$content = elgg_list_entities([
'type' => 'object',
'subtype' => 'blog',
]);
$layout = elgg_view_layout('default', [
'title' => $title,
'content' => $content,
]);
echo elgg_view_page($title, $layout);
Мы сделали этот шаблон более простым. Теперь вы можете передать массив параметров макета во второй параметр elgg_view_page. Функция elgg_view_page будет использовать этот массив для обёртывания его в макет „default“. Она также добавляет заголовок страницы в макет.
Новый способ сделать это:
echo elgg_view_page('All blogs', [
'content' => elgg_list_entities([
'type' => 'object',
'subtype' => 'blog',
]),
]);
Устаревшие названия макетов
Для облегчения перехода с Elgg 2.x на 3.x мы сохранили некоторые старые названия макетов („one_sidebar“, „one_column“, „two_sidebar“ и „content“) нетронутыми при использовании в функции elgg_view_layout. Начиная с Elgg 3.3 эти названия макетов устарели, и вам следует обновить свой код для использования нового макета „default“.
При изменении использования названия макета „content“ следует учитывать, что „content“ генерирует меню фильтра. Это меню немного отличается от обычного меню „filter“, генерируемого в макете „default“. Оно использует другие названия хуков. Если вы уже отключили фильтр в своём макете, вы можете изменить макет без каких-либо проблем.
Изменения в манифесте плагина
Мы работаем над удалением файла манифеста плагина. Некоторые функции манифеста будут заменены, а некоторые — удалены. Чтобы сделать этот переход немного проще, мы уже объявили устаревшими следующие функции API ElggPluginManifest:
getCopyright()getDonationsPageURL()getSuggests()используйте suggestions в composer
Устаревшие API
elgg_disable_query_cache()
elgg_enable_query_cache()
elgg_format_attributes()используйтеelgg_format_element()
elgg_flush_caches()используйтеelgg_clear_caches()
elgg_get_menu_item()
elgg_get_ordered_event_handlers()используйтеelgg()->events->getOrderedHandlers()
elgg_get_ordered_hook_handlers()используйтеelgg()->hooks->getOrderedHandlers()
elgg_invalidate_simplecache()используйтеelgg_clear_caches()
elgg_is_menu_item_registered()
elgg_view_entity_annotations()
execute_delayed_write_query()используйтеelgg()->db->registerDelayedQuery()
execute_delayed_read_query()используйтеelgg()->db->registerDelayedQuery()
run_sql_script()
elgg_unset_all_plugin_settings()используйте\ElggPlugin::unsetAllSettings()
elgg_get_file_simple_type()используйтеelgg()->mimetype->getSimpleType()
ElggFile::detectMimeType()используйтеelgg()->mimetype->getMimeType()
generate_action_token()используйтеelgg()->csrf->generateActionToken()
elgg_split()
Устаревшие значения конфигурации
simplecache_lastupdateиспользуйтеlastcache
Устаревшие команды CLI
elgg-cli flushиспользуйтеelgg-cli cache:clear
Устаревшие хуки
entity:annotate, <entity_type>