导语

使用 Composer 管理包不用过多介绍了,想必大家都知道。前段时间工作需求做了 Composer 包发布到内网的托管平台,今天有时间尝试下发布到 Packagist,整理记录下。

准备工作

准备工作很简单,共两点

  1. Github 新建项目,用于管理 Composer 包的代码
  2. Packagist 注册账号,用 Github 账号即可

开发

做一个简单的 demo

  1. 将 GitHub 中的项目 clone 到本地
  2. 执行 composer init 命令进行初始化,如果有其他依赖条件,可以配置 requirerequire-dev 参数 composer init
  3. 经过上一步会创建 composer.json 文件,如果需要改动,也可以直接修改 composer.json
  4. 接下来写个简单的 function,创建 src/helpers.php,代码如下
<?php

function init()
{
    echo 'test composer';
}
  1. 最后要在 composer.json 中定义好加载方式,关于加载机制可以看这篇文章。 因为 demo 比较简单,就使用 files 就可以了,最终 composer.json 如下
{  
    "name": "test/test-composer",  
    "description": "test",  
    "type": "library",  
    "require": {  
        "php": "^7.2"  
  },  
    "license": "MIT",  
    "authors": [  
        {  
            "name": "test",  
            "email": "test@test.com"  
  }  
    ],  
    "autoload": {  
        "files": [  
            "src/helpers.php"  
  ]  
    }  
}

发布

  1. 别忘了版本号 git tag v1.0.0
  2. 将代码 push 到 GitHub,tag 也要 push git push origin --tags
  3. 在 Packagist 平台点击 submit,然后填入 GitHub 项目的地址,点击 check
  4. 等一会就可以使用 composer require 安装刚才发布的包了
  5. 后续提交代码到 GitHub 的时候,Packagist 会自动更新。如果没有更新的话,可以参考这篇文章进行配置

结语

很简单的 demo,也没有写 phpunit,主要是熟悉下流程😄😄。


参考资料:Composer 包开发居然这么简单学习开发自己的 Composer 包,并使用 GitHub 实时更新到 Packagist深入学习 Composer 自动加载(autoload)机制


Haoyuqi
472 声望23 粉丝

PHPer