Vue d’ensemble pour les développeurs

Cette page constitue une rapide introduction à Elgg pour les développeurs. Elle couvre les principales approches pour travailler avec Elgg en tant que framework, et mentionne certains des termes et des technologies utilisées.

Voyez Guides de développement pour des tutoriels ou Documentation du design de conception pour une discussion approfondie sur le design.

Base de données et Persistance

Elgg uses MySQL for data persistence, and maps database values into Entities (a representation of an atomic unit of information) and Extenders (additional information and descriptions about Entities). Elgg supports additional information such as relationships between Entities, activity streams, and various types of settings.

Plugins

Les plugins modifient le comportement ou l’apparence de Elgg en remplaçant les vues ou en gérant les événements. Toutes les modifications apportées à un site Elgg doivent être implémentées via des plugins pour garantir une mise à niveau facile du noyau.

Actions

Les actions sont le principal moyen par lequel les utilisateurs interagissent avec un site Elgg. Les actions sont enregistrées par des plugins.

Evénements

Les événements sont utilisés dans les plugins Elgg pour interagir avec le moteur Elgg dans certaines circonstances. Les événements sont déclenchés à des moments stratégiques tout au long du processus de démarrage et d’exécution de Elgg, et permettent aux plugins de modifier ou d’annuler le comportement par défaut.

Vues « Views »

Les vues ou Views sont la première couche de présentation pour Elgg. Les vues peuvent être surchargées ou étendues par les Plugins. Les vues sont des catégories d’un type de vue « Viewtype », qui définit quel type de sortie devrait être généré par la vue.

JavaScript

Elgg uses native ES modules. Plugins can register their own modules or load their own JS libs.

Internationalisation

L’interface de Elgg supporte de multiples langues, et utilise Transifex pour la traduction.

Mise en cache

Elgg utilise deux caches pour améliorer les performances : un cache système et SimpleCache.

Bibliothèques tierce-partie

The use of 3rd party libraries in Elgg is managed by using Composer dependencies. Examples of 3rd party libraries are jQuery, CSS Crush or Laminas mail.

Pour une liste complète des dépendances de Elgg, consultez la page Packagist pour Elgg.

Génération de données de test ou Ensemencement

Elgg fournit un mécanisme de génération de données - ensemencement de base de données, ou database seeding - pour remplir la base de données avec des entités à des fins de test.

Vous pouvez exécuter les commandes suivantes pour générer des données de test et les supprimer de la base de données.

# seed the database
vendor/bin/elgg-cli database:seed

# unseed the database
vendor/bin/elgg-cli database:unseed

Les plugins peuvent enregistrer leurs propres graines via l’événement 'seeds', 'database'. Le gestionnaire doit renvoyer le nom de classe de la graine, qui doit étendre la classe \Elgg\Database\Seeder\Seed.