Composer 是 PHP 用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。
现在应该所有的框架都支持使用Composer进行包管理了。如何发布自己的包呢?
首先,去github创建一个自己的包,例如https://github.com/zhujp/wechat.git
克隆到本地
git clone https://github.com/zhujp/wechat.git
进入目录,执行初始化
composer init
回提示你
Welcome to the Composer config generator
This command will guide you through creating your composer.json config.
然后,输入包名
Package name (<vendor>/<name>) [vilay/www]: zhujp/wechat
输入描述:
Description []: A Simple WeChat develop package
输入作者
Author [zhujp <zhujp1211@163.com>]:zhujp <zhujp1211@163.com>
输入版本
Minimum Stability []:dev
输入开源协议
License []:MIT
定义依赖等
Define your dependencies.
Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no
{
"name": "vilay/wechat",
"description": "A Simple WeChat develop package",
"license": "MIT",
"authors": [
{
"name": "zhujp",
"email": "zhujp1211@163.com"
}
],
"minimum-stability": "dev",
"require": {}
}
Do you confirm generation [yes]? yes
我的包目录结构如下
wechat
--src/ # 目录类库代码写在该目录下
--src/
--src/WeChat.php
--src/Helps.php
--composer.json
--README.md
修改composer.json
自动加载设置,添加下面的配置
"require": {
"php": ">=5.4.0"
},
"autoload": {
"psr-4": {
"WeChat\\": "src/"
}
}
提交到github
进入packagist网站,提交包
进入网站,注册帐号,在submit那边提交git地址就可以了。
因为上面提交的是开发版本的,所以在别人使用包的时候,例如composer require zhujp/wechat
,会报错
[InvalidArgumentException]
Could not find package zhujp/wechat at any version for your minimum-stability (stable). Check the package spelling or your minimum-stability
Composer
包的版本来自于git 分支
和tag
,git分支
代表开发(dev
)版本,tag
代表稳定(stable
)版本。
本地要求的时候稳定版本的,所以可以在github上发布个版本,在github上可以直接操作,这边介绍下用命令行的方式处理
git tag 1.0
git push origin --tags
然后在packagist上更新看下有没有发布版本的包。
如果执行composer require zhujp/wechat
还报错,等一天,有可能是服务器那边问题。