自从 thinkphp 官方更新5.1,加入了**容器**和**门面**等新特性之后,对开发者更加友好了。我也看大概浏览了文档,比 5.0 更加友好了。官方也一直迎合着开发者的需要,加入了这一系列的实现。下面开发包的时候我会提到为什么比 5.0 友好,两者做一些我知道的不同之处。注意以下是**本地包**,开发完之后会上传到 Packagist。以开发一个rbac权限包为例子。地址:[https://github.com/yanwenwu/thinkphp-permission]()
### 创建Composer包
```
在 vendor 目录下,创建 think-permission 目录,在该目录创建src目录,config 目录,然后需要一个 command 目录
|-think-permission
|--src
|--model
|--command
|--config
|--database
```
### 初始化
```
composer init
// 会出现一系列提示,按要求提写就可以了, 结果就是这样的
{
"name": "wyw/think-permission",
"description": "rbac",
"type": "library",
"require": {
"topthink/think-migration": "lastest"
},
"license": "MIT",
"authors": [
{
"name": "yanwenwu",
"email": "82664165@qq.com"
}
]
}
```
### 自动加载
回到项目根目录下,修改 **composer.json**, 修改以下代码。
```
"autoload": {
"psr-4": {
"app\\": "application",
// 下面这是添加的
"think\\permissions\\":"vendor/think-permission/src/"
}
},
```
### 更新
```
composer update
```
这样可以完成包的自动加载了。