Пакет помогает организовать модульную структуру для фреймворка Laravel
composer require 'kodicms/module-loader:5.1.*@dev'
###Добавить в загрузку сервис провайдеры:
/* * KodiCMS Service Providers... */ KodiCMS\ModulesLoader\Providers\ModuleServiceProvider::class, KodiCMS\ModulesLoader\Providers\RouteServiceProvider::class, KodiCMS\ModulesLoader\Providers\AppServiceProvider::class, KodiCMS\ModulesLoader\Providers\ConfigServiceProvider::class,
'ModulesLoader' => KodiCMS\ModulesLoader\ModulesLoaderFacade::class, 'ModulesFileSystem' => KodiCMS\ModulesLoader\ModulesFileSystemFacade::class,
"autoload": { ... "psr-4": { ... "Modules\\" : "modules/" }, ... },
По умолчанию модули системы хранятся в папке modules
, если вам необходимо загрузить модуль из другой директории, то вы должны указать через конфиг файл путь до модуля и его пространство имен:
return [ ... 'modules' => [ 'modulename', // Namespace: KodiCMS\modulename, Path baseDir/modules/modulename 'ModuleName2' => [ 'path' => {relative path to module}, 'namespace' => '\\CustomNamespace\\ModuleName2\\' ] ] ... ];
По умолчанию загрузчик при подключении модуля использует KodiCMS\ModulesLoader\ModuleContainer
, вы можете переопределить файл контейнера создав его по пути app\ModuleContainer.php
или если вы захотите изменить поведение конкретного модуля, то необходимо создать файл ModuleContainer.php
в корне директории модуля и наследовать его от KodiCMS\ModulesLoader\ModuleContainer
https://github.com/KodiCMS/kodicms-laravel/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D0%B8
Для просмотра списка подключенных модулей в системе используйте консольную команду:
odulesL
php artisan modules:list