转自个人博客:
https://www.tanchengjin.com/article/104
首先在github中创建一个空仓库
...步骤省略...(创建的测试仓库地址为git@github.com:349508017/test.git)
克隆github仓库到本地 git clone git@github.com:349508017/test.git test
在本地test目录下执初始化composer.json文件
composer init
填写包名格式为 供应商/包名
包的描述,可以忽略
github用户名与邮箱
包发布的最低要求,填写dev可以让github上代码直接同步到packagist,填写stable则需要在打了tag后才能发布
编写library即可
可不填,回车即可
是否定义当前的依赖项,可以输入no
选择要搜索依赖的包,输入php即可
输入最低约束版本php5.3即可
是否还有其他的约束,如果没有回车即可
浏览composer.json文件。(如果composer.json中出现\u....等系列字符,安装完成后在composer.json中删除\u...等字符即可,如果出现php5.3更改为5.3即可) --如没有出现错误忽略此步骤即可
是否创建composer.json文件,输入yes即可
是否将vendor目录添加到git忽略列表中,选择yes即可
是否现在安装依赖,选择yes即可
打开项目目录可以看到已经有文件了
因为composer.json中文件选择项比较少,开发者可以手动修改或追加配置项
为了后续的方便将类库地址与composer的自动加载对应,还可以手动配置相应的内容。如映射类库的命名空间的实际目录
编写核心类库,在项目根目录下创建src/test/lib/Test.php文件
run方法接受一个字符串类型的参数并将它显示
建立类库与Composer的关系
完成类库编写之后,还需要建立与Composer的关系。主要操作就是吧自定义的类库,加入到Composer的自动加载(autoload)机制中,在类库提交后,开发者只需要在项目中引入全局的autoload.php文件(vendor/autoload.php),就可以直接实例化和使用类库先关功能
执行命令
composer install
安装完成后Composer会自动生成命名空间之间的映射关系,执行后会在项目目录下自动生成vendor目录,并在vendor目录下生成Composer包自动加载(autoload)程序文件
在项目根目录下的vendor/composer/autoload_psr4.php文件中,记录了$vendorDir和$baseDir的路径.使用Composer安装类库依赖时,packagist会自动将自定义的项目文件放到vendor目录下,文件代码如下
在本地测试包是否可用
在项目根目录下创建index.php文件,并写入如下代码
返回结果正常显示
测试没有问题提交到github中
提交依赖包到Composer packagist
点击submit
或者直接访问url https://packagist.org/packages/submit
填写git地址后单击click按钮,packagist会检测是否和已有应用重名,没有应用重名就可以继续提交
此时如果通过composer require tan/test时会出现如下错误
可以输入composer require "tan/test @dev" 可获取开发版(dev)
这是因为获取稳定版本(stable)的发布需要在github上添加相应的标签(tag)步骤如下:
创建本地tag并推送到版本库
git tag -a v1.0.0 -m="v1.0.0"
查看tag是否已经添加成功
git tag
推送tag到github
git push test --tags
在packagist中执行更新
然后在右侧栏可以看到版本已经更新
此时输入如下命令可以直接下载源码
composer require "tan/test"