提交PHP组件到Packagist 发布自己的Composer包
Composer是PHP的一个依赖管理工具,它使得PHP焕发新的生机,有了现代化的WEB开发规范,Packagist是PHP组件的库,也有其他的镜像。
在Packagist上提交了一个自己开发的PHP组件,这样其他开发者就可以使用Composer使用这个包了。这个组件并没什么功能,主要是看看提交PHP组件的流程,并记录了过程中遇到的问题及解决方法,以供参考。
提交PHP组件步骤:
1.新建一个项目目录,创建一个composer.json文件,格式如下:
|
|
这个json格式的文件中包含组件的基本信息,这里还差自动加载的方式,要根据具体开发模式指定自动加载方式,这里require可以指定这个组件依赖的其他组件,composer都会自动解决依赖。
附上完整的composer.json内容作为示例:
这个json格式的文件中包含组件的基本信息,这里还差自动加载的方式,要根据具体开发模式指定自动加载方式,这里require可以指定这个组件依赖的其他组件,composer都会自动解决依赖。
附上完整的composer.json内容作为示例:
|
|
2.开发组件功能
要注意遵循psr规范,使用命名空间。
3.把组件提交到Github上
提交组件到Packagist
之前需要先把代码提交到github上,在Packagist
只需填写组件的github地址。
4.提交组件地址到
Packagist
这样就完成的PHP组件提交到Packagist的过程,具体请参见Packagist官网。
问题:使用composer require找不到组件
组件提交到Packagist上,提示发布成功了,但是使用composer命令却找不到组件:
|
|
如图:
由于我的composer使用的国内镜像,猜测可能是没有同步的原因,使用这个命令把“源”改回去还是不行。
|
|
原来我的组件还没有在github上发布正式,这个时候还是开发版本dev-master.应该加上dev-master版本。
|
|
果然指定了dev-master版本可以成功更新组件,但是这样不行,我们要有一个正式版本。
composer-dev-master
github发布版本
进入组件的github主页,找到导航上“releases”,点击进去如图页面,就可以创建一个版本,填写好信息之后即可发布版本。
create_release
按照页面上的提示填写内容,完成后发布。发布版本后,通过composer require发现还是找不到包。
设置自动更新版本
auto-update
原来还要在Github上配置一下自动更新。具体步骤参考:点击这里查看
我直接通过手动的方式发送curl请求来设置,这样还简单一点,不过这样每次发新的版本都需要这样请求一下:
|
|
返回{“status”:”success”}
表示成功。
再打开https://packagist.org/packages/ly2513/redis-queue
,发现已经是正式版本了。
我用的是composer国内镜像,因为众所周知的原因,连代码仓库也要被墙,我服!等了几个小时再试,这个时候镜像同步更新了,再次输入:composer require ly2513/redis-queue
,这个时候可以成功更新了。如图,vendor文件夹下也自动装载了依赖的其他组件。
success