/module-loader

Laravel module loader

Primary LanguagePHPGNU General Public License v2.0GPL-2.0

Laravel module loader

Пакет помогает организовать модульную структуру для фреймворка 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,

В composer.json добавить пространство имен

"autoload": {
	...
	"psr-4": {
		...
		"Modules\\"    : "modules/"
	},
	...
},

Конфиг файл app.php

По умолчанию модули системы хранятся в папке 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