使用composer发布自己的PHP依赖包

来源:互联网 发布:淘宝淘气值有什么用 编辑:程序博客网 时间:2024/06/04 18:57

背景

这不是什么新东西,纯属自己写着玩。
composer是什么就不用解释了,做PHP开发的应该都知道,毕竟nodejs有npm,ruby有bundler,是吧。composer就是受他们启发才弄出来的。
发布包这个问题,composer官网和其他很多博客都有很详细的说明,自己写一个加深下印象。

总体

先说总的说明一下。
其实就几个内容:
1. 安装使用composer,这个官网的说明已经很详细了。
2. 发布项目,发布到github上。
3. packagist发布包,可以设置git在push的自动同步。

详细

第一步就是按照官网安装说明做就行了,各个环境安装都有说明,我就不说了。说说第二步,其实这个项目和你之前弄得项目没什么区别,唯一要做的就是那个composer.json文件,这个文件配置非常丰富,具体内容我也不一一细说,主要就是name这个属性,名字要和你github的项目吻合,不然packagist在审核的时候通不过。ok,项目推送到github之后,就是包的发布了。到packagist(https://packagist.org),最好直接用github来登录。首先submit一个自己包,其实它说支持git/svn/hg,当然我们用git,填入你的项目地址,然后check,如果不过的话,它会告诉你详细的错误信息(因为我没遇到过,不太清楚会出现些是什么错误)。审核之后,在你自己的pakage里面能看到,可以直接操作。再说一下自动同步吧,假如你每次更新了项目,还要跑到这来点一下update,是不是很麻烦。所以这里最好设置一个自动同步,当然packagist提供了api的方式来操作,这个也是挺麻烦。packagist和github已经打通了,可以直接在github上设置就行了。ok在github上打开你的项目,点击setting 》 Installed integrations 》Add Service 选择 packagist,然后填写user、token、domain,token你可以从你的packagist个人页面找到。到这整个过程基本就完成了。

遇到的问题

  1. 版本号问题

    问题:发布的的时候版本号,首先肯定得按照它说的命名规范来做,但是,不知道为什么在packagist中看到的包始终会在后面加上 .x-dev。
    解决:原来每一个分支同步过去都会加上这个后缀,如果命名不是按照它规范来的话,还会被改成 “dev-分支”(如dev_master)。那么怎么才能不带这个后缀了,毕竟感觉就不正规,最后发现 是打tag,github的tag同步过来就是正常的了。

  2. 资源包同步的问题

    问题:因为国外的资源有可能被屏,就算没屏也会很慢,所以composer现在退出了官方的中国镜像,那么我们发布的包同步到packagist了,会不会同步到中国镜像packagist.phpcomposer.com上面来呢。解决:会的。已验证
0 0