下面我结合ThinkPHP来说一下怎么使用github和packagist在Windows环境下发布一个自己的composer包。

1.首先需要加载windows版的composer,安装的时候需要注意必须开启php_openssl模块,安装后在cmd中输入composer检验安装成功。

使用github、Packagist、composer发布_发布

2.在github中新建一个项目,然后download下来,这里我全程使用PHPStorm来操作:

使用github、Packagist、composer发布_thinkphp_02

3.使用 ​​composer init​​ 来初始化composer,在这里系统会自动提问并配置,其实也可以全部按回车全部都忽略了,然后再手动进行修改,比如说我创建一个文件,然后修改成这样:

{
"name": "xxh/think-wxminihelper",
"description": "weixin mini program helper",
"license": "Apache-2.0",
"minimum-stability": "stable",
"version": "1.0.1",
"authors": [
{
"name": "小小黑",
"email": "769418278@qq.com"
}
],
"support": {
"issues": "https://github.com/wulongtao/think-wxminihelper/issues"
},
"require": {
"php": ">=5.3.0"
},
"autoload": {
"psr-4": {
"wlt\\wxmini\\": "src/"
}
}
}

4.上面主要是要注意autoload配置,这个表示配置一个命名空间指向对应的目录,然后再对应的目录中加入自己的代码,比如我这里封装了一个微信小程序加密认证的模块(注意这里命名空间写对就可以了,还有的是类名和文件名要一致,这是个坑来的,因为微信官方给出的类文件名第一个字母是小写的。。):

namespace wlt\wxmini;
/**
* error code 说明.
* <ul>

* <li>-41001: encodingAesKey 非法</li>
* <li>-41003: aes 解密失败</li>
* <li>-41004: 解密后得到的buffer非法</li>
* <li>-41005: base64加密失败</li>
* <li>-41016: base64解密失败</li>
* </ul>
*/

class ErrorCode
{
public static $OK = 0;
public static $IllegalAesKey = -41001;
public static $IllegalIv = -41002;
public static $IllegalBuffer = -41003;
public static $DecodeBase64Error = -41004;
}

5.编辑好代码之后push到github上,然后再相应的项目中点击setting,进入到设置页面,在配置Packagist的hook。

使用github、Packagist、composer发布_github_03

使用github、Packagist、composer发布_thinkphp_04

6.上面点击创建了之后,接下来要去 ​​https://packagist.org/profile/​​ 上面创建一个号,看一下自己的API token,

使用github、Packagist、composer发布_thinkphp_05

7.回到github进行hook相关配置:

使用github、Packagist、composer发布_github_06

8.在Packagist官网中点击submit(Check的使用会检查是否已经纯在这个目录了,如果存在的话,需要重新改一下composer.json文件中的name配置)

使用github、Packagist、composer发布_thinkphp_07


使用github、Packagist、composer发布_composer_08

9.提交之后就可以使用了,在使用之前先配置一下代理:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

10.在你的项目中进行配置,比如我的项目框架是thinkPHP5.0,在更目录中,敲如下命令(dev-master是固定的,如果你没设置分支的话):

composer require xxh/think-wxminihelper dev-master

11.等待一端时间安装完成,使用的时候需要根据具体的框架而定,如果没有使用框架,就需要手动

require_once 'autoload.php'

但是我这里使用了ThinkPHP5.0,默认vendor里面是自动加载的,所以并不需要做任何的​​require​​ 操作


参考网站:

​https://rivsen.github.io/post/how-to-publish-package-to-packagist-using-github-and-composer-step-by-step​

​http://blog.zhengshuiguang.com/php/packagist.html​