Laravel与Element-plus开发(二、Laravel模块化)

本文介绍了如何在 Laravel 中实现模块化开发,详细讲解了从安装 nwidart/laravel-modules,到添加服务、发布软件包、配置自动加载、生成模块,再到个人使用习惯的设定和路由修改等步骤。通过这些步骤,可以有效地组织和管理大型 Laravel 项目中的代码,提高代码复用性和可维护性。

在日常的开发中,我们往往不会简单的开发单个功能或多个简单功能的项目,而且随着项目的推进,代码会越来越庞大,因此为了避免一个模块多个功能混杂的问题,这里采用模块化开发。

      本系统采用的是:nwidart/laravel-modules,laravel 的模块管理器 

      git 地址:https://github.com/nWidart/laravel-modules

目录

1、安装

2、添加服务

3、发布软件包

4、添加自动加载

5、生成模块

6、个人使用习惯

7、路由修改


1、安装

composer require nwidart/laravel-modules

2、添加服务

在 config /app.php

添加服务提供者

'providers' => [
    Nwidart\Modules\LaravelModulesServiceProvider::class,
],

添加别名

'aliases' => [
    'Module' => Nwidart\Modules\Facades\Module::class,
],

PS:以上内容在Laravel5.0之前必须添加,5.0之后则可不必须

         执行完上面这条命令之后,在 config 文件夹下会生成一个 modules.php 文件,这个是模块开发的配置文件,你可以在这里面进行配置。

3、发布软件包

php artisan vendor:publish --provider="Nwidart\Modules\LaravelModulesServiceProvider"

4、添加自动加载

修改文件:composer. json

{
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Modules\\": "Modules/"
        }
    }
}

PS:添加完后composer dump-autoload更新

5、生成模块

php artisan module:make module-name
php artisan module:make module-name1 module-name2 module-name3 //生成多个模块

6、个人使用习惯

        以上生成的目录结构的模块是在和 app 同级的目录下,不便于管理,建议将目录放置在app目录下

        方法:修改配置文件 config/modules.php 文件

'namespace' => 'App\Modules',
'paths' => [
	'modules' => base_path('App\Modules'),
]

7、路由修改

方法:修改配置文件 config/modules.php 文件

①将配置文件中有关 start 的配置去掉

'stubs' => [
    'enabled' => false,
    'path' => base_path() . '/vendor/nwidart/laravel-modules/src/Commands/stubs',
    'files' => [
        // 'start' => 'start.php',
        'routes' => 'Http/routes.php',
    ],
    'replacements' => [
       // 'start' => ['LOWER_NAME'],
    ],
],

接下来再将 Blog/module.json 下面生成的 start.php 去掉

{
	"files": [],
}

②修改路由文件生成路径

'stubs' => [
    'files' => [
         // 'start' => 'start.php',
        'routes' => 'Routes/routes.php',
    ],
]

③接下来修改路由服务提供者,注册路由

php artisan module:route-provider project

为指定的模块生成给定的路由。 执行完此命令之后,会在 Blog/Providers 目录下面生成一个 RouteServiceProvider.php 文件,此文件就是路由的服务提供者。 接下来修改 RouteServiceProvider.php 文件

public function map(Router $router)
{
    // if (!app()->routesAreCached()) {
    //    require __DIR__ . '/Http/routes.php';
    // }
    if (! app()->routesAreCached()) {
        $this->mapWebRoutes();
    }
}
protected function mapWebRoutes()
{
    //方法一:
    //Route::group([
       //'middleware' => 'web',
       //'namespace'  => $this->namespace,
   //], function ($router) {
       //require module_path('Admin') . '/Routes/routes.php';
   //});
    //方法二:
    Route::middleware('web')
        ->namespace($this->rootUrlNamespace)
        ->group(module_path('Project') . '/Routes/routes.php');
}

在此 RouteServiceProvider.php 文件已经修改完毕。 接下来修改 Blog/Providers/BlogServiceProvider.php 文件,修改如下:

public function register()
{
    //注册服务提供者
    $this->app->register(RouteServiceProvider::class);
}

至此,Laravel整个安装与模块化配置完成。

以上内容大多来自https://learnku.com/articles/6153/laravel-modular-development

实际开发应用时略做了改动,各位可以参考原文或自由发挥做出适合自己开发的调整。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值