基于Laravel5.5的模块化开发

来源:互联网 发布:汉诺塔算法c语言 编辑:程序博客网 时间:2024/06/07 09:50

laravel 安装后是单模块应用,但通常情况下,我们的项目往往会有很多模块,如果按单模块去做,文件目录会异常庞大,不利于维护,耦合性太大。
那么下面就详细说一下利用最新laravel5.5如何进行分模块开发。

下载安装Laravel5.5

  • 环境要求 PHP >= 7.0.0
  • 安装教程 https://laravel.com/docs/5.5

composer安装laravel5.5

composer create-project --prefer-dist laravel/laravel ./

建立 模块化 目录

  • 新建modules模块目录
appartisanbootstrapcomposer.jsoncomposer.lockconfigdatabasemodulespackage.jsonphpunit.xmlpublicreadme.mdresourcesroutesserver.phpstoragetestsvendorwebpack.mix.js
  • modules的目录结构为
    • Base 公共基础模块
    • Backend 后台模块
    • Frontend 前台模块
modules/├── Backend│   ├── Controllers│   ├── helpers.php│   ├── Middlewares│   ├── Models│   ├── Providers│   │   ├── BaseServiceProvider.php│   │   └── RouteServiceProvider.php│   └── Requests│   └── helpers.php├── Base│   ├── Controllers│   ├── helpers.php│   ├── Middlewares│   ├── Models│   ├── Providers│   │   ├── BaseServiceProvider.php│   │   └── RouteServiceProvider.php│   └── Requests└── Frontend    ├── Controllers    ├── helpers.php    ├── Middlewares    ├── Models    ├── Providers    │   ├── BaseServiceProvider.php    │   └── RouteServiceProvider.php    └── Requests

使用composer自动加载模块命名空间

  • 修改composer.json 文件
{    "name": "laravel/laravel",    ...    "autoload": {        "classmap": [            "database/seeds",            "database/factories"        ],        "psr-4": {                        "App\\": "app/",            "Base\\": "modules/Base/",            "Backend\\": "modules/Backend/",            "Frontend\\": "modules/Frontend/"        },        "files": [            "modules/Base/helpers.php"        ]     }    ...}
  • 自动加载命令,在应用根目录命令行执行
composer dumpauto
  • 命名空间举例
    • 基础模块命名空间为 namespace Base
    • 基础模块-控制器命名空间 namespace Base\Controllers
    • 基础模块-模型命名空间 namespace Base\Models

配置模块化服务

  • 修改config/app.php
<?phpreturn [    //省略之前内容    'providers' => [        //...        // 模块化的Provider        Base\Providers\BaseServiceProvider::class, //公共基本服务Provider        Backend\Providers\BaseServiceProvider::class, //后台服务Provider        Frontend\Providers\BaseServiceProvider::class, //前台基本服务Provider    ],    //省略之后内容];

新建各模块路由文件

- base.php- backend.php- frontend.php
routes/├── api.php├── backend.php├── base.php├── channels.php├── console.php├── frontend.php└── web.php

源码托管于码云 http://git.oschina.net/techlee/laravel5.5-modules-demo

原文链接 https://www.tech1024.cn/original/2937.html

阅读全文
0 0
原创粉丝点击