当前位置:   article > 正文

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

Laravel与Element-plus开发(二、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

添加服务提供者

  1. 'providers' => [
  2.    Nwidart\Modules\LaravelModulesServiceProvider::class,
  3. ],

添加别名

  1. 'aliases' => [
  2. 'Module' => Nwidart\Modules\Facades\Module::class,
  3. ],

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

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

3、发布软件包

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

4、添加自动加载

修改文件:composer. json

  1. {
  2. "autoload": {
  3. "psr-4": {
  4. "App\\": "app/",
  5. "Modules\\": "Modules/"
  6. }
  7. }
  8. }

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

5、生成模块

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

6、个人使用习惯

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

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

  1. 'namespace' => 'App\Modules',
  2. 'paths' => [
  3. 'modules' => base_path('App\Modules'),
  4. ]

7、路由修改

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

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

  1. 'stubs' => [
  2. 'enabled' => false,
  3. 'path' => base_path() . '/vendor/nwidart/laravel-modules/src/Commands/stubs',
  4. 'files' => [
  5. // 'start' => 'start.php',
  6. 'routes' => 'Http/routes.php',
  7. ],
  8. 'replacements' => [
  9. // 'start' => ['LOWER_NAME'],
  10. ],
  11. ],

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

  1. {
  2. "files": [],
  3. }

②修改路由文件生成路径

  1. 'stubs' => [
  2. 'files' => [
  3. // 'start' => 'start.php',
  4. 'routes' => 'Routes/routes.php',
  5. ],
  6. ]

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

php artisan module:route-provider project

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

  1. public function map(Router $router)
  2. {
  3. // if (!app()->routesAreCached()) {
  4. // require __DIR__ . '/Http/routes.php';
  5. // }
  6. if (! app()->routesAreCached()) {
  7. $this->mapWebRoutes();
  8. }
  9. }
  1. protected function mapWebRoutes()
  2. {
  3. //方法一:
  4. //Route::group([
  5. //'middleware' => 'web',
  6. //'namespace' => $this->namespace,
  7. //], function ($router) {
  8. //require module_path('Admin') . '/Routes/routes.php';
  9. //});
  10. //方法二:
  11. Route::middleware('web')
  12. ->namespace($this->rootUrlNamespace)
  13. ->group(module_path('Project') . '/Routes/routes.php');
  14. }

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/644716
推荐阅读
相关标签
  

闽ICP备14008679号