使用github、Packagist、composer发布

来源:互联网 发布:金和网络老十佳 编辑:程序博客网 时间:2024/06/05 09:49

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

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

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

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。

这里写图片描述

这里写图片描述

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

这里写图片描述

7.回到github进行hook相关配置:
这里写图片描述

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

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

0 0
原创粉丝点击