基于Laravel5.5的模块化开发


composer安装laravel5.5

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

建立 模块化 目录

  • 新建modules模块目录
app
artisan
bootstrap
composer.json composer.lock config database modules package.json phpunit.xml public readme.md resources routes server.php storage tests vendor webpack.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
<?php return [ //省略之前内容 '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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM