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