基於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