### 前言
使用 `composer` 安裝本質是調用 [packagist.org](https://packagist.org/) 的包,
因此只要提交到 [packagist.org](https://packagist.org/) 即可被 自己/他人安裝。
### 編輯composer.json
`packagist` 會自動識別 `composer.json`,因此我們所需要做的是編輯 `composer.json`。
`name`: 包的名稱,它包括供應商名稱和項目名稱,使用`/`分隔。
`desc`: 一個包的簡短描述。通常這個最長只有一行。
```type:
ibrary: 它會簡單的將文件復制到 vendor 目錄(就是擴展包)
project: 代表是一個項目 (比如:laravel thinkphp.......)
........
```
詳見 - [composer.json架構](https://docs.phpcomposer.com/04-schema.html#package-name)

### 推送到倉庫
### 提交到packagist.org

點擊右上角的 `Submit` 進入提交頁面。
(沒賬號的注冊一個就好了)

輸入倉庫的 `url`, 支持`git` `svn` `hg`。
然后`packagist` 就會解析倉庫的 `composer.json`。
如果有錯誤,根據錯誤修改 `composer.json` 再提交到倉庫。
(一般都是 `供應商` 名字被占用了)
### 發布成功

### 安裝
`composer search 包名`
(鏡像同步需要時間 可以用 `search` 查詢鏡像是否存在)

`composer create-project lyxxxh/php_frame:dev-master`
如果沒有正式版本,要安裝開發版,則須要加上 `:dev-master` 指定。
(`git` 標簽就是包的版本)
### 結果

- 前言
- 基礎篇
- 1. 第一步 創建框架目錄結構
- 2. 引入composer自動加載
- 3. php自動加載 (解釋篇)
- 4. 創建容器 注冊樹模式
- 5. 關于psr規范解釋
- 6. 關于"容器" "契約" "依賴注入" (解釋篇)
- 7. 添加函數文件helpers.php
- 8. 初始化請求(Request)
- 9. 響應 (Response)
- 10. 路由一 (路由組實現)
- 11. 路由二 (加入中間件)
- 12. 配置信息 (類似laravel)
- 13. 數據庫連接 (多例模式)
- 14. 查詢構造器 (query builder)
- MVC實現
- M 模型實現 (數據映射 + 原型 模式)
- C 控制器實現 + 控制器中間件
- V 視圖實現 (Laravel Blade 引擎)
- V 視圖切換成 ThinkPhp 模板 引擎)
- 其他輪子
- 日志
- 自定義異常 (異常托管)
- 單元測試 (phpunit)
- 替換成swoole的http服務器
- 協程上下文解決request問題
- qps測試
- 發布到packagist.org