lazerg / laravel-modular

该软件包最新版本(v0.13)没有可用的许可信息。

Laravel Modular

v0.13 2024-07-05 01:47 UTC

This package is auto-updated.

Last update: 2024-09-05 02:23:45 UTC


README

cover

Version Downloads count Repository count Last commit Stars count

将 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 文件中注册此服务提供者。

将默认文件移动到模块

  1. /app/Modules/User 移动到 /modules/User/app/Modes/User
  2. auth.providers.users.model 配置更改为 Modules\User\Models\User
  3. /database/migrations/2014_10_12_000000_create_users_table.php 移动到 /modules/User/database/migrations/2014_10_12_000000_create_users_table.php
  4. /database/factories/UserFactory.php 移动到 /modules/User/database/factories/UserFactory.php

设置数据填充器

  1. database/seeders/DatabaseSeeder.php 必须扩展 ModularDatabaseSeeder。不要覆盖 run 方法。
  2. modules/User/database/seeders 目录中创建 DatabaseSeeder。它必须扩展 BaseDatabaseSeeder
  3. modules/User/database/seeders 目录中创建 UserSeeder。它必须扩展 Illuminate\Database\Seeder
  4. 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');