kodepandai / laravel-modular
Requires
- php: ^8.0
- laravel/framework: ^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0
- pestphp/pest: 1.0|^2.0
- pestphp/pest-plugin-laravel: ^1.0|^2.0
This package is auto-updated.
Last update: 2024-10-01 00:08:18 UTC
README
此分支正在开发中!待办事项:改进文档
以模块化方式对您的laravel应用进行打包。灵感来源于 spatie/laravel-package-tools
。
此laravel模块化包基于每个模块被视为独立包的概念。因此,它允许您以构建laravel包的方式结构化模块文件夹。
安装
$ composer require kodepandai/laravel-modular
安装后,将此配置添加到您的 composer.json
"repositories": [ // ... { "type": "path", "url": "modules/*/", "options": { "symlink": true } } // ... ],
用法
新建模块
$ php artisan modular:make Sales
*Sales 是模块名称
使用模块化
此包 不 自动加载资源(路由、配置、迁移等),相反,您需要手动在模块 ServiceProvider
中加载它们。
模块服务提供者
namespace Sales\Providers; use KodePandai\Modular\Module; use KodePandai\Modular\Providers\ModuleServiceProvider; class SalesServiceProvider extends ModuleServiceProvider { public function configureModule(Module $module): void { $module->name('Sales') ->hasViews() ->hasMigrations() ->hasRoutes(); // $module->hasOtherThings() ... } }
配置
将您的配置文件放在 <module root>/config
文件夹中,然后使用以下方式注册:
// load all configs $module->hasConfigs(); // load one config $module->hasConfig('sales'); // load multiple configs $module->hasConfigs(['sales', 'services']);
视图
将您的视图文件放在 <module root>/resources/views
文件夹中,然后使用以下方式注册:
// load all views $module->hasViews();
视图组件
将您的视图组件文件放在 <module root>/src/Components
文件夹中,然后使用以下方式注册:
// load one <sales::header /> component $module->hasViewComponent('sales', \Sales\Components\Header::class); // load multiple components $module->hasViewComponents('sales', [ \Sales\Components\Header::class, // <sales::header /> \Sales\Components\Sidebar::class, // <sales::sidebar /> ]);
翻译
将您的翻译文件放在 <module root>/lang
或 <module root>/resources/lang
文件夹中,然后使用以下方式注册:
$module->hasTranslations();
迁移
将您的迁移文件放在 <module root>/database/migrations
文件夹中,然后使用以下方式注册:
// load all migrations $module->hasMigrations();
注意
- 对于工厂,放在
<module root>/database/factories
文件夹 - 对于种子,放在
<module root>/database/seeders
文件夹
路由
将您的路由文件放在 <module root>/routes
文件夹中,然后使用以下方式注册:
// load all routes $module->hasRoutes(); // load one route $module->hasRoute('web'); // load multiple routes $module->hasRoutes(['web', 'api']);
命令
将您的命令文件放在 <module root>/src/Commands
文件夹中,然后使用以下方式注册:
// load all commands $module->hasCommmands(); // load one command $module->hasCommand(\Sales\Commands\CheckServer::class); // load multiple commands $module->hasCommands([ \Sales\Commands\CheckVersion::class, \Sales\Commands\CheckServer::class, ]);
辅助函数
将您的辅助函数放在 <module root>/src/helpers.php
文件中,然后使用以下方式注册:
// load helper $module->hasHelper();
中间件
将您的中间件文件放在 <module root>/src/Http/Middleware/
文件夹中,然后使用以下方式注册:
// load one middleware $module->hasMiddleware('sales.admin', \Sales\Http\Middleware\EnsureAdminHaveAccessToSales::class); // load multiple middlewares $module->hasMiddlewares([ 'sales.admin' => \Sales\Http\Middleware\EnsureAdminHaveAccessToSales::class, 'sales.whitelist' => \Sales\Http\Middleware\OnlyWhitelistIpCanAccessSales::class, ]);
服务提供者
将您的服务提供者放在 <module root>/src/Providers
文件夹中,然后使用以下方式注册:
// load one service Provider $module->hasServiceProvider(\Sales\Providers\PaymentServiceProvider::class); // load multiple service providers $module->hasServiceProviders([ \Sales\Providers\PaymentServiceProvider::class, \Sales\Providers\EventServiceProvider::class, ]);
开发
运行 composer test
进行测试。