目录

创建composer包

创建一个Composer包只需两步:

  • 填写包描述信息

    Composer包的描述信息存放在composer.json文件中,可直接新建(或从其他项目拷贝)composer.json文件,手动填充必要的字段信息;

    也可以用composer init命令,交互式的输入包信息,生成composer.json文件后再补全其他字段信息。

    {
        "name": "9ong/wstools",
        "description": "9ong websocket tools",
        "type": "library",
        "require": {
            "php": ">=7.0"
        },
        "license": "MIT",
        "authors": [
            {
                "name": "9ong",
                "email": "tsingchan@9ong.com"
            }
        ],
        "minimum-stability": "stable",
        "autoload": {
            "psr-4": {
                "9ong\\": "src/"
            }
        }
    }
    
    
  • 实现代码

提交到git

包编码测试后,提交到私有git仓库。

提交到packagist

这次是内部私有库,所以不考虑提交packagist,如果有需要提交到packagist的话,可以看参考文章详细介绍。

进入 Packagist 官网,登录你的账户,点击 Submit

填写你提交到 GitHub 的仓库地址。点击 Check,根据提示提交即可。

稍等片刻,你会看到如下界面,然后你就可以使用这个库了。

引用composer包

新项目microblog需要使用到9ong/wstools的包,我们就可以在新项目中引用这个composer包:

{
    ....
    "require": {
        "9ong/wstools": "2.0.1"
    },    
    "repositories": [
      {
        "url": "git@gitlab.com/9ong/wstools.git",
        "type": "git",
      }
    ],
    ....
}

在 composer.json 中,除了要指明 git 项目地址之外,还需要在 require 中指定对应的版本号。

composer 依赖的 package 版本号2.0.1来自哪里?

实际上就是 VCS 中的版本号,例如,git 打的 version tag。

composer 在识别 version 的时候,会自动过滤掉字母 ‘v’ 的前缀,所以在打 tag 的时候,加不加 v 都是可以的。当然为了阅读方便,还是加上好。

git tag -a 'v2.0.1'

参考

PHP回顾之创建自己的Composer包 - 掘金

如何创建一个自己的 Composer 库 | PHP 技术论坛

十分钟创建Composer包 - SegmentFault 思否

对以内部 git 仓库为 composer 依赖的 package,加上版本号_weixin_30670965的博客-CSDN博客