Модули для Rotor
Ссылка на репозиторий с примерами модулей
https://github.com/visavi/rotor-modules
Чтобы создать свой модуль необходимо создать директорию название которой начинается с большой буквы, все символы должны быть латинскими
Название директории это часть namespace (Пространство имен)
Новая директория повторяет собой директорию app в Rotor с некоторыми изменениями
Теперь в ней могут содержаться следующие файлы и директории
Структура модуля
1. Файл module.php
Обязательный файл который описывает модуль, может содержать в себе настройки и любую другую информация
Состоит из массива
- name - Имя модуля
- description - Описание модуля
- version - версия модуля
- author - Автор модуля,
- email -email автора,
- homepage - сайт автора
2. Controllers
Контроллеры с пространством имен namespace App\Modules\ИмяМодуля\Controllers;
Контроллеры должны быть наследованы от \App\Controllers\BaseController
3. Models
Модели с пространством имен namespace App\Modules\ИмяМодуля\Models;
Модели должны быть наследованы от \App\Models\BaseModel
4. resources
Директория для шаблонов (views), переводов (lang) и статические файлы (assets)
5. migrations
Директория для миграций, которые выполняются при установке, обновлении и удалении модуля
6. screenshots
Директория которая может содержать в себе изображения модуля
Скриншоты будут показываться на странице установки модуля, количество и размер не ограничен
7. Файл routes.php
Содержит в себе роуты
Шаблоны
Вызовы шаблонов должны производится с указанием namespace
К примеру
view('ИмяМодуля::директория/файл')
Поиск шаблона будет произведен из app/Modules/ИмяМодуля/resources/views/директория/файл.blade.php
Переводы
Вызовы переводов должны также производится с указанием namespace
К примеру
trans('ИмяМодуля::файл.ключ массива')
Поиск перевода будет произведен из app/Modules/ИмяМодуля/resources/lang/(ru|en|...)/файл.php
Статические файлы
Статические файлы - это картинки, css, js и другие файлы которые должны быть доступны напрямую, при установке движка все ссылки (symlinks) будут автоматически созданы по адресу /assets/modules/ИмяМодуля
В модулях доступны все функции, классы и методы Rotor
Самый простой модуль может состоять из 3 файлов, module.php, routes.php и контроллера