Разработка модулей
Модули — это способ добавить новую функциональность в Flute CMS без изменения ядра. Каждый модуль работает независимо и может быть легко установлен, обновлён или удалён.
Что может модуль
- Добавлять страницы — новые разделы сайта (блог, форум, магазин)
- Расширять функции — виджеты, платёжные системы, интеграции
- Работать с данными — свои таблицы в базе данных
- Интегрироваться с админкой — настройки, управление контентом
- Взаимодействовать с другими модулями — через события и API
Модули устанавливаются в папку app/Modules/. Каждый модуль — отдельная папка со своим кодом.
Быстрый старт
Минимальный модуль состоит из двух файлов:
app/Modules/Hello/
├── module.json ← Описание модуля
└── Providers/
└── HelloProvider.php ← Точка входа1. Создайте module.json
{
"name": "Hello",
"version": "1.0.0",
"description": "Мой первый модуль",
"providers": [
"Flute\\Modules\\Hello\\Providers\\HelloProvider"
]
}2. Создайте провайдер
<?php
namespace Flute\Modules\Hello\Providers;
use Flute\Core\Support\ModuleServiceProvider;
class HelloProvider extends ModuleServiceProvider
{
protected ?string $moduleName = 'Hello';
public function boot(\DI\Container $container): void
{
// Загружает все ресурсы модуля автоматически
$this->bootstrapModule();
}
}3. Активируйте модуль
Зайдите в админ-панель → Модули → Найдите ваш модуль → Активируйте.
Готово! Модуль работает. Теперь можно добавлять контроллеры, шаблоны и другие возможности.
Типичная структура модуля
app/Modules/Blog/
├── module.json # Описание и зависимости
├── Providers/
│ └── BlogProvider.php # Провайдер модуля
├── Http/Controllers/
│ └── ArticleController.php # Контроллеры
├── database/Entities/
│ └── Article.php # Сущности БД
├── Resources/
│ ├── config/
│ │ └── blog.php # Настройки
│ ├── lang/
│ │ ├── ru/messages.php # Переводы (русский)
│ │ └── en/messages.php # Переводы (английский)
│ └── views/
│ └── pages/
│ └── index.blade.php # Шаблоны
├── Components/
│ └── ArticleCard.php # Yoyo-компоненты
├── Widgets/
│ └── RecentArticles.php # Виджеты
└── Services/
└── ArticleService.php # Бизнес-логикаРазделы документации
Основы
Продвинутые темы
Справочники и инструменты
Примеры и практики
Что дальше
Изучите структуру модуля
Поймите, какие папки за что отвечают и как Flute загружает ресурсы.
Создайте контроллер
Научитесь обрабатывать HTTP-запросы и работать с данными.
Добавьте шаблоны
Создайте пользовательский интерфейс с Blade и компонентами.
Настройте локализацию
Добавьте поддержку нескольких языков.
Опубликуйте модуль
Поделитесь модулем с сообществом Flute CMS.