### 前言
使用 `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)
![](https://img.kancloud.cn/d7/44/d7448ec67f5139de455d468d5db1c0cc_606x188.png)
### 推送到仓库
### 提交到packagist.org
![](https://img.kancloud.cn/e2/5a/e25afcdb53b9875de86735e393add8ac_704x163.png)
点击右上角的 `Submit` 进入提交页面。
(没账号的注册一个就好了)
![](https://img.kancloud.cn/8a/0c/8a0c1ac59430052f476270554375e73f_605x220.png)
输入仓库的 `url`, 支持`git` `svn` `hg`。
然后`packagist` 就会解析仓库的 `composer.json`。
如果有错误,根据错误修改 `composer.json` 再提交到仓库。
(一般都是 `供应商` 名字被占用了)
### 发布成功
![](https://img.kancloud.cn/2d/ea/2dea71ea955b52b8d8c5aaedaf950932_2236x1045.png)
### 安装
`composer search 包名`
(镜像同步需要时间 可以用 `search` 查询镜像是否存在)
![](https://img.kancloud.cn/50/58/50589a97f89cb3bd1163604165d8e57d_1136x105.png)
`composer create-project lyxxxh/php_frame:dev-master`
如果没有正式版本,要安装开发版,则须要加上 `:dev-master` 指定。
(`git` 标签就是包的版本)
### 结果
![](https://img.kancloud.cn/04/b2/04b2742da1d806c5963e6aff2bacd960_2467x1237.png)
- 前言
- 基础篇
- 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