Пакет помогает организовать модульную структуру для фреймворка Laravel.
https://packagist.org/packages/kodicms/module-loader
Для установки пакета вы можете выполнить консольную комманду
composer require "kodicms/module-loader:3.*"
Или добавить пакет в composer.json
{
"require": {
...
"kodicms/module-loader": "3.*"
...
}
}
'providers' => [ ... KodiCMS\ModulesLoader\Providers\ModuleServiceProvider::class, ... ],
{
"autoload": {
...
"psr-4": {
...
"Modules\\" : "modules/"
},
...
},
}
По умолчанию модули системы хранятся в папке modules, если вам необходимо загрузить модуль из другой директории,
то вы должны указать через конфиг файл путь до модуля и его пространство имен:
return [
...
'modules' => [
'modulename', // Namespace: Modules\modulename, Path baseDir/modules/modulename
'ModuleName2' => [
'path' => {relative path to module},
'namespace' => '\\CustomNamespace\\ModuleName2\\'
]
]
...
];
По умолчанию загрузчик при подключении модуля использует KodiCMS\ModulesLoader\ModuleContainer, вы можете
переопределить файл контейнера создав его по пути app\DefaultModuleContainer.php или если вы захотите
изменить поведение конкретного модуля, то необходимо создать файл ModuleContainer.php в корне директории модуля
и наследовать его от KodiCMS\ModulesLoader\ModuleContainer.
Assets- ассеты, которые будут скопированы вpublic/cms/modules/{module}config- конфиги модуля. Если в модулях есть конфиг файлы с одинаковым названием, то их содержимое мерджитсяConsoleCommands- расположение файлов консольных компанды
databasemigrations- файлы миграции, будут запущены по командеmodules:migrateseedsDatabaseSeeder.php- если существует, то будет запущен по командеmodules:seed
HttpControllers- контроллеры модуляroutes.php- роуты текущего модуля, оборачиваются в неймспейсModules\{module}
ProvidersModuleServiceProvider.php- Сервис провайдер модуля, если файл существует, будет запущен в момент инициализации приложения
resourceslang- Файлы переводов для модуля, доступны по ключу названия модуля приведенного в нижний регистрtrans('{module}::file.key')views- Шаблоны модуля, доступны по ключу названия модуля приведенного в нижний регистрview('{module}::template')
ModuleContainer.php- Если данный файл существует, то он будет подключен как системный файл модуля, в котором указаны относительыне пути и действия в момент инициализации. Необходимо наследовать отKodiCMS\ModulesLoader\ModuleContainer
php artisan modules:list- просмотр списка подключенных модулейphp artisan modules:migrate- выполнение миграций из модулей (Доступны параметры аналогичные для стандартной командыmigrate)php artisan modules:seed- сидирование данных из модулейphp artisan modules:assets:publish- публикация assets файлов из папки Assets вpublic/modules/{module}