laravel 安装后是单模块应用,但通常情况下,我们的项目往往会有很多模块,如果按单模块去做,文件目录会异常庞大,不利于维护,耦合性太大。
那么下面就详细说一下利用最新laravel5.5如何进行分模块开发。
composer create-project --prefer-dist laravel/laravel ./
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/
├── 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
{
"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
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