De 3.2 à 3.3

Version de PHP

PHP 7.1 a atteint sa fin de vie en décembre 2019. Pour assurer la sécurité des sites Elgg, nous demandons maintenant au moins PHP 7.2 pour les nouvelles installations.

Si vous faites une mise à niveau depuis une installation de Elgg précédente, assurez-vous que vous avez la bonne version de PHP installée.

Afin de pouvoir tester Elgg sur PHP 7.4, nous avons dû mettre à jour la suite de test PHPUnit à la version 8.5. Cela peut nécessiter quelques réécritures de vos propres tests d’unité/intégration.

Utilisation plus simple de la disposition “default”

Actuellement, le modèle le plus courant est de faire ce qui suit :

$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);

Nous avons rendu ce genre de modèle plus simple. Vous pouvez maintenant passer un tableau d’options de disposition au deuxième paramètre de elgg_view_page. La fonction elgg_view_page utilisera ce tableau pour l’envelopper dans la disposition “default”. Elle ajoute également le titre de la page à la mise en page.

La nouvelle manière de le faire est :

echo elgg_view_page('All blogs', [
        'content' => elgg_list_entities([
                'type' => 'object',
                'subtype' => 'blog',
        ]),
]);

Noms de disposition dépréciés

Pour faciliter la transition de Elgg 2.x à 3.x, nous avons gardé certains anciens noms de mise en page (“one_sidebar”, “one_column”, “two_sidebar” et “content”) intacts lorsqu’ils sont utilisés dans la fonction elgg_view_layout. À partir de Elgg 3.3, ces noms de disposition sont obsolètes et vous devez mettre à jour votre code pour utiliser la nouvelle disposition “default”.

Lorsque vous modifiez l’utilisation du nom de disposition “content”, vous devriez tenir compte du fait que la mise en page “content” génère un menu de filtre. Ce menu est légèrement différent du menu “filter” habituel, généré dans la disposition “default”. Il utilise d’autres noms de hook. Si vous avez déjà désactivé le filtre dans votre disposition, vous pouvez modifier la disposition sans aucun problème.

Modifications du manifeste du plugin

Nous travaillons à la suppression du fichier de manifeste de plugin. Certaines caractéristiques du manifeste seront remplacées et d’autres seront abandonnées. Pour faciliter un peu cette transition, nous avons déjà déprécié les fonctions suivantes de l’api ElggPluginManifest :

  • getCopyright()

  • getDonationsPageURL()

  • getSuggests() utilisez les suggestions dans composer

APIs dépréciées

  • elgg_disable_query_cache()

  • elgg_enable_query_cache()

  • elgg_format_attributes() utilisez elgg_format_element()

  • elgg_flush_caches() utilisez elgg_clear_caches()

  • elgg_get_menu_item()

  • elgg_get_ordered_event_handlers() utilisez elgg()->events->getOrderedHandlers()

  • elgg_get_ordered_hook_handlers() utilisez elgg()->hooks->getOrderedHandlers()

  • elgg_invalidate_simplecache() utilisez elgg_clear_caches()

  • elgg_is_menu_item_registered()

  • elgg_view_entity_annotations()

  • execute_delayed_write_query() utilisez elgg()->db->registerDelayedQuery()

  • execute_delayed_read_query() utilisez elgg()->db->registerDelayedQuery()

  • run_sql_script()

  • elgg_unset_all_plugin_settings() utilisez \ElggPlugin::unsetAllSettings()

  • elgg_get_file_simple_type() utilisez elgg()->mimetype->getSimpleType()

  • ElggFile::detectMimeType() utilisez elgg()->mimetype->getMimeType()

  • generate_action_token() utilisez elgg()->csrf->generateActionToken()

  • elgg_split()

Valeurs de configuration obsolètes

  • simplecache_lastupdate utilisez lastcache

Commandes CLI obsolètes

  • elgg-cli flush utilisez elgg-cli cache:clear

Hooks obsolètes

  • entity:annotate, <entity_type>