什么是composer
composer是PHP语言基于项目的一个代码依赖管理工具。实际上,它由3部分组成,包含composer命令行、扩展包仓库、扩展包。
它允许你在项目中配置并声明所依赖的扩展,然后去扩展包仓库去把项目扩展包依赖以及扩展包依赖下载并安装到你的项目中,方便的在项目代码中去调用并基于它实现你的业务逻辑。
Composer的组成
- comoposer命令行: 解决了扩展的下载、安装、生成项目依赖自动加载文件。
- 扩展包仓库 : 托管扩展包
解决的问题
扩展包
- 对于扩展包作者 便于把一些好的想法用技术的方式呈现出来,并开源和分享。
对于开发者
- 降低了三方类库的安装和迁移成本;
- 大大节省了开发者的时间,使开发者能够专注于业务;
- 提高了代码复用性。比如:分布式项目。
对于互联网服务提供商
- 有助于服务业务的推广,让开发者达到开箱即用的效果。比如腾讯IM、微信支付SDK。
composer安装扩展包原理
composer扩展包仓库以及分类
扩展包仓库也可称为镜像源。镜像分为私有源、公有源、本地源。
公有源
- https://mirrors.aliyun.com/composer/
- https://packagist.phpcomposer.com
私有源
- https://code-ipd.bydauto.com.cn:9081/li.kaiqiang3/millionmile
本地源
- 扩展包在本地磁盘中的路径
composer扩展包仓库以及分类
源配置
composer.phar config repositories.XXX vcs "私有扩展名包地址"
例:
composer扩展包声明、开发、发布
在开发扩展包之前,首先我们要搞清楚三个问题
- 你开发的扩展包使为了解决什么问题;
- 扩展包由哪几部分组成;
- 扩展包的开发、发布以及发布到哪;
扩展包的组成
- 逻辑代码;
- 异常处理,比如定义扩展包独有的异常类型;
- 单元测试;
- 扩展包使用示例代码;
- 简洁明了的文档;
发布到哪 怎么发布
公有源发布步骤
- 将开发好的扩展包代码发布到github或者其他代码托管平台并设置项目为公开项目;
- 用github账号登录国内镜像源网站https://packagist.org;
- 获取国内镜像源网站中的个人账号 apitoken, 设置在github 的webhook配置中,并验证其访问是否正常。如果访问正常,当你更新代码到github时,国内镜像源若检测到有代码更新,github会自动推送最新代码到国内镜像源;
- 若未设置webhook,还可以手动推送最新代码到国内公有源。 curl -XPOST -H'content-type:application/json' 'https://packagist.org/api/update-package?username=lkq0929&apiToken=API_TOKEN' -d'{"repository":{"url":"PACKAGIST_PACKAGE_URL"}}'
私有源发布步骤
- 将已开发好的扩展包代码发布到github或者其他代码托管平台并设置项目为私有项目;
- 配置私有源扩展包下载地址;
- 切换到项目根目录,命令行执行composer.phar config repositories.XXX vcs "私有扩展名包地址”
- 然后就可以和公有源扩展包一样的方式去安装和更新扩展包了。