Пакет помогает организовать модульную структуру для фреймворка 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
- конфиги модуля. Если в модулях есть конфиг файлы с одинаковым названием, то их содержимое мерджитсяConsole
Commands
- расположение файлов консольных компанды
database
migrations
- файлы миграции, будут запущены по командеmodules:migrate
seeds
DatabaseSeeder.php
- если существует, то будет запущен по командеmodules:seed
Http
Controllers
- контроллеры модуляroutes.php
- роуты текущего модуля, оборачиваются в неймспейсModules\{module}
Providers
ModuleServiceProvider.php
- Сервис провайдер модуля, если файл существует, будет запущен в момент инициализации приложения
resources
lang
- Файлы переводов для модуля, доступны по ключу названия модуля приведенного в нижний регистр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}