Обзор для разработчиков

Это краткое введение для разработчиков в Elgg. Оно охватывает базовый подход к работе с Elgg как фреймворком и упоминает некоторые используемые термины и технологии.

Смотрите Руководства для разработчиков для уроков или Документация по дизайну для углублённого обсуждения дизайна.

База данных и сохранение

Elgg использует MySQL для сохранения данных и отображает значения базы данных в сущности (Entities — представление атомарной единицы информации) и расширители (Extenders — дополнительная информация и описания о сущностях). Elgg поддерживает дополнительную информацию, такую как отношения между сущностями, ленты активности и различные типы настроек.

Плагины

Плагины изменяют поведение или внешний вид Elgg, переопределяя представления или обрабатывая события. Все изменения сайта на Elgg должны реализовываться через плагины, чтобы упростить обновление ядра.

Действия

Действия — это основной способ взаимодействия пользователей с сайтом на Elgg. Действия регистрируются плагинами.

События

События используются в плагинах Elgg для взаимодействия с движком Elgg при определённых обстоятельствах. События запускаются в стратегические моменты в процессе загрузки и выполнения Elgg, позволяя плагинам изменять или отменять поведение по умолчанию.

Представления

Представления — это основной слой отображения для Elgg. Представления могут быть переопределены или расширены плагинами. Представления категоризированы по типу представления (Viewtype), который подсказывает, какой тип вывода ожидается от представления.

JavaScript

Elgg использует нативные модули ES. Плагины могут регистрировать собственные модули или загружать собственные библиотеки JS.

Интернационализация

Интерфейс Elgg поддерживает несколько языков и использует Transifex для перевода.

Кэширование

Elgg использует два кэша для повышения производительности: системный кэш и SimpleCache.

Сторонние библиотеки

Использование сторонних библиотек в Elgg управляется с помощью зависимостей Composer. Примеры сторонних библиотек: jQuery или Symfony mail.

Чтобы получить список всех зависимостей Elgg, посетите страницу Packagist для Elgg.

Заполнение базы данных

Elgg предоставляет базовые сиды базы данных для заполнения её сущностями в целях тестирования.

Вы можете выполнить следующие команды для заполнения и очистки базы данных.

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

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

Плагины могут регистрировать собственные сиды через событие 'seeds', 'database'. Обработчик должен вернуть имя класса сида, который должен наследовать класс \Elgg\Database\Seeder\Seed.