lazerg / laravel-modular
该软件包最新版本(v0.13)没有可用的许可信息。
Laravel Modular
v0.13
2024-07-05 01:47 UTC
Requires
- php: ^8.0
- laravel/framework: ^11.0
README
将 Laravel 项目划分为模块可以将功能性和特性隔离到独立的、可管理的单元中,从而提高代码组织性。这种模块化方法通过允许每个模块独立开发、测试和维护来提高可扩展性,从而加快开发速度并降低冲突风险。
它还促进了可重用性,因为模块可以轻松地用于其他项目,从而提高开发效率并减少重复工作。
安装
composer require lazerg/laravel-modular
创建新模块
当我们开始一个新项目时,我们需要将当前文件移动到模块中。让我们创建 modules/User/app 目录。并在 composer.json 文件中注册它。
{
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/",
"Modules\\User\\": "modules/User/app/",
"Modules\\User\\Database\\Factories\\": "modules/User/database/factories/",
"Modules\\User\\Database\\Seeders\\": "modules/User/database/seeders/"
}
}
}
不要忘记更改后执行 composer dump-autoload。
注册模块后,在 modules/User/app 目录中创建 UserServiceProvider。它必须扩展 ModuleServiceProvider。接下来,您需要在 bootstrap/providers.php 文件中注册此服务提供者。
将默认文件移动到模块
- 将
/app/Modules/User移动到/modules/User/app/Modes/User - 将
auth.providers.users.model配置更改为Modules\User\Models\User。 - 将
/database/migrations/2014_10_12_000000_create_users_table.php移动到/modules/User/database/migrations/2014_10_12_000000_create_users_table.php - 将
/database/factories/UserFactory.php移动到/modules/User/database/factories/UserFactory.php
设置数据填充器
database/seeders/DatabaseSeeder.php必须扩展ModularDatabaseSeeder。不要覆盖run方法。- 在
modules/User/database/seeders目录中创建DatabaseSeeder。它必须扩展BaseDatabaseSeeder - 在
modules/User/database/seeders目录中创建UserSeeder。它必须扩展Illuminate\Database\Seeder - 在
DatabaseSeeder的$earlySeeders或$seeders属性中注册UserSeeder。
加载器
在 ModuleServiceProvider 内部,我们有不同的加载器
路由
web.php
Route::get('/index', [UserController::class, 'index'])->name('index');
api.php
Route::get('/index', [UserController::class, 'index'])->name('index');
