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 utilise MySQL 5.7 ou supérieur pour la persistance des données et mappe les valeurs de la base de données en entités (une représentation d’une unité atomique d’informations) et en extensions (informations et descriptions supplémentaires sur les entités). Elgg prend en charge des informations supplémentaires telles que les relations entre les entités, les flux d’activité et divers types de paramètres.

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 utilise un système JavaScript compatible AMD fourni par RequireJs. Les bibliothèques jQuery, jQuery UI, jQuery Form, et jQuery UI Autocomplete sont distribuées avec Elgg.

Les plugins peuvent charger leurs propres bibliothèques JS.

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

L’utilisation de bibliothèques tierce-partie dans Elgg est gérée par le gestionnaire de dépendances Composer. jQuery, RequireJs ou Zend mail sont des exemples de bibliothèques tierce-partie.

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.