Система плагинов

Эта документация описывает систему плагинов, реализованную в приложении.

Общая информация

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

Структура плагина

Каждый плагин должен иметь следующую структуру:

plugins/
  ├── ИмяПлагина/
  │   ├── plugin.properties    # Файл свойств плагина (для нового способа)
  │   ├── plugin.json          # Файл конфигурации плагина
  │   ├── plugin.php           # Файл инициализации плагина (для старого способа)
  │   └── src/                 # Директория с исходным кодом плагина
  │       └── ...              # Классы плагина

Файл plugin.properties

Файл plugin.properties содержит основные свойства плагина, включая имя главного класса:

mainClass=namespace\\ИмяГлавногоКласса

Главный класс плагина должен наследоваться от fs\AbstractPlugin и реализовывать метод init().

Файл plugin.json

Файл plugin.json содержит метаданные плагина:

Создание плагина (новый способ)

  1. Создайте директорию для плагина в папке plugins/.

  2. Создайте файл plugin.properties с указанием главного класса.

  3. Создайте файл plugin.json с метаданными плагина.

  4. Создайте директорию src/ для исходного кода плагина.

  5. Создайте главный класс плагина, наследующийся от fs\AbstractPlugin.

Пример главного класса плагина:

Создание плагина (старый способ)

  1. Создайте директорию для плагина в папке plugins/.

  2. Создайте файл plugin.json с метаданными плагина.

  3. Создайте файл plugin.php с функцией инициализации плагина.

Пример файла plugin.php:

Хуки и фильтры

Система плагинов поддерживает хуки и фильтры для расширения функциональности:

Хуки

Хуки позволяют выполнять код в определенные моменты работы приложения:

Фильтры

Фильтры позволяют изменять данные:

Зависимости плагинов

Плагины могут зависеть от других плагинов. Зависимости указываются в файле plugin.json в поле requires:

Система плагинов автоматически загружает зависимости перед загрузкой плагина.

Настройки плагинов

Плагины могут иметь настройки, которые указываются в файле plugin.json в поле settings:

Настройки доступны через методы getSettings(), getSetting() и setSetting() класса AbstractPlugin.

Last updated