自從 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
```
這樣可以完成包的自動加載了。