# Общий функционал для админ-панели и некоторых частей модулей. Клонируем ```git clone https://github.com/hrustbb2/common-src.git ./src``` В ```composer.json``` добавляем строчку ```"Src\\": "src/",```: ``` "autoload": { "psr-4": { "App\\": "app/", "Src\\": "src/", "Database\\Factories\\": "database/factories/", "Database\\Seeders\\": "database/seeders/" } }, ``` В ```app/Providers/AppServiceProvider.php``` добавляем: ``` const ADMIN_MODULES = 'admin_modules'; public function boot() { $this->loadViewsFrom(__DIR__ . '/../../src/views', 'common'); $this->app->singleton(self::ADMIN_MODULES, function ($app) { return new AdminModulesProvider(); }); } ``` Обратите внимание на строки в ```ModulesProvider.php```: ``` use Src\Common\Interfaces\IModulesProvider as ICommonProvider; use Src\Common\Interfaces\IFactory as ICommonFactory; use Src\Common\Factory as CommonFactory; class ModulesProvider implements ICommonProvider { protected ?ICommonFactory $commonFactory = null; public function getCommonFactory(): CommonFactory { if($this->commonFactory === null){ $this->commonFactory = new CommonFactory(); $this->commonFactory->init(); // Пример для Laravel $this->commonFactory->setFrameworkName(ICommonFactory::LARAVEL); } return $this->commonFactory; } } ``` Примерно так сюда подключается большинство модулей. Подключение в routes/web.php (для Laravel) ``` require __DIR__ . '/../src/Common/Laravel/routes.php'; ``` Также необходимо создать файл config/admin.php со следующим содержанием: ``` [ 'rootDir' => __DIR__ . '/../storage/uploads', ], ]; ``` И, разумеется, создать дирректорию с правами на запись ```/../storage/uploads``` Подключение на стороне фронтенда для различных модулей: ``` import {Factory as AdminPanelFactory} from '@common/admin/Factory'; $(()=>{ let adminPanelFactory = new AdminPanelFactory(); adminPanelFactory.initAdminPanel(); }); ``` saas файл со стилями: ``` @import "~common/css/main.scss"; @import "../../node_modules/bootstrap/dist/css/bootstrap.css"; ``` ``` find -type f -name \*.php -exec sed -i -r 's/Src\\/Src\\Modules\\/g' {} \; find -type f -name \*.php -exec sed -i -r 's/Src\\Modules\\Common\\/Src\\Common\\/g' {} \; find -type f -name \*.php -exec sed -i -r 's/Src\\Modules\\Sidebar\\/Src\\Sidebar\\/g' {} \; find -type f -name \*.php -exec sed -i -r 's/Src\\Modules\\Interfaces\\Sidebar\\/Src\\Interfaces\\Sidebar\\/g' {} \; ```