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.5 ou supérieur pour la persistance des données, et les données de la base sont transcrites ou mappées dans des Entités (une représentation d’une unité d’information atomique) et des Extenseurs ou « Extenders » (des informations additionnelles et des descriptions à propos des Entités). Elgg supporte des informations additionnelles telles que des relations entre des Entités, des flux d’activités, et divers types de réglages.

Plugins

Les Plugins modifient le comportement ou l’apparence de Elgg en surchargeant les vues, ou en gérant des événements et des hooks plugin. Toutes les modifications d’un site Elgg devraient être implémentées via des plugins pour garantir que la mise à niveau du noyau reste simple.

Actions

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

Événements et Hooks plugin

Les Événements et les Hooks plugin sont utilisés dans les plugins Elgg pour interagir avec le moteur de Elgg dans certaines circonstances. Les Événements et les Hooks sont activés à des moments stratégiques lors des 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 le hook 'seeds', 'database'. Le gestionnaire doit retourner le nom de la classe de la graine, qui doit étendre la classe \Elgg\Database\Seeder\Seed.