创建模块
创建模块
使用artisan命令 php artisan module:make ModuleName
来创建一个名为 Posts
的模块:
php artisan module:make posts
这将在 Modules/Posts
路径下创建一个模块
通过分别指定模块名称,可以在一个命令中创建多个模块:
php artisan module:make customers contacts users invoices quotes
这将创建每个模块。
参数
默认情况下,当您创建一个新模块时,该命令将自动添加一些资源,如控制器、种子类、服务提供者等。如果你不想要这些,你可以添加 --plain
参数,以生成一个普通模块。
php artisan module:make Blog --plain
或
php artisan module:make Blog -p
其他参数如下:
生成api模块。
php artisan module:make Blog --api
不要在创建时启用该模块。
php artisan module:make Blog --disabled
或
php artisan module:make Blog -d
命名约定
因为我们使用 psr-4 自动加载模块,我们强烈建议使用 StudlyCase 惯例。
目录结构
Modules/
├── Blog/
├── Config/
├── Console/
├── Database/
├── factories/
├── Migrations/
├── Seeders/
├── Entities/
├── Http/
├── Controllers/
├── Middleware/
├── Requests/
├── Providers/
├── PostsServiceProvider.php
├── RouteServiceProvider.php
├── Resources/
├── assets/
├── lang/
├── views/
├── Routes/
├── api.php
├── web.php
├── Tests/
├── composer.json
├── module.json
├── package.json
├── webpack.mix.js
Composer.json
每个模块都有自己的 composer
。这将设置模块的名称、描述和作者。通常只有当你需要更改供应商名称或有自己的 composer
依赖时,才需要更改此文件。
假设你想在这个模块中安装一个包:
"require": {
"dcblogdev/laravel-box": "^2.0"
}
这将引入此模块的包,但它不会被加载。 所以,您必须将依赖项放在 Laravel composer.json
文件中。 存在这种情况的主要原因是为了将模块提取到包中。
Module.json
该文件详细说明了名称、别名和描述/选项:
{
"name": "Blog",
"alias": "blog",
"description": "",
"keywords": [],
"priority": 0,
"providers": [
"Modules\\Blog\\Providers\\BlogServiceProvider"
],
"aliases": {},
"files": [],
"requires": []
}
模块按优先级顺序加载,更改优先级编号,以自定义顺序启动/填充模块。
files 选项可以用来包含文件:
"files": [
"start.php"
]