使用 Laravel-Modules 编写模块化应用程序

简介

当我们开发大型应用时,经常需要将应用划分成不同的模块,比如博客、电商、论坛等。想象一下,有一个中等大小的应用程序,所有东西都在 app/ 文件夹中,更糟糕的是,每个模型都在文件夹的根 app 目录中!在某些时候,会花费大量时间寻找东西,因为一切都捆绑在一起了。Laravel-Modules 就是这样一个使用模块帮助我们管理大型应用的扩展包。模块和扩展包有点类似,包含视图、控制器、模型等子组件,用于区别大的功能单元时使模块更加清晰。

安装

注:安装最新 Laravel-Modules 要求 PHP 版本在 7.0 以上,同时 Laravel 版本是 5.5.*。

1.首先在 Laravel 项目根目录下使用 Composer 安装该扩展包。

composer require nwidart/laravel-modules

2.通过运行如下命令来发布配置文件。

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

3.通过如下命令生成应用的第一个模块。

php artisan module:make Admin

生成的模块目录结构如下:


image.png

4.要让模块目录中定义的类可以自动加载,需要配置根目录下的composer.json。

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

5.配置完成后运行以下命令让修改生效。

composer dump-autoload

基本使用

简单定义一个路由来访问模块中的控制器方法。

首先在 Laravel 应用根目录下的 Modules/Routes/web.php 定义一个路由:

Route::get('/user', [\Modules\Admin\Http\Controllers\AdminController::class,'index']);

然后打开域名加模块名即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容