注意事项
- 参考demo的例子:https://github.com/epimetheusQ/omnimate.git
- git 强制推送 git push -u origin master -f (强制推送,慎用)
- 在composer init时,如果创建一个项目,写project,如果想写一个类似于hyperf/validation的话,就需要选择library,其余暂未研究过。
- 即使你开了翻墙,正常推送代码,有时候也会推送代码/分支失败。
- 在composer init时,起composer包名,不能使用驼峰的形式,会报错,只能全部小写。如:epimetheus/omnimate
- 报错:Could not find a version of package epimetheus/omnimate matching your minimum-stability (dev). Require it with an e
xplicit version constraint allowing its desired stability.
原因: 新包是需要composer 升级2.0+ 才能安装,package.org会提示:
This package is not installable via Composer 1.x, please make sure you upgrade to Composer 2+. Read more about our Composer 1.x deprecation policy.
目录
- github 创建仓库
- 本地git初始化
- 初始化composer至项目
- 将github的包注册至Package.org
- git 更新包
步骤实现
github 创建仓库
进入:https://github.com
登录或者注册账号,创建一个仓库,如:https://github.com/epimetheusQ/omnimate
本地git初始化
在命令行中,输入“git init”,使omnimate文件夹加入git管理;
输入“git add .”,将omnimate文件夹全部内容添加到git。
输入“git commit -m “first commit””(git commit -m “提交信息”)
从github将仓库内的文件pull下来 (以免push的时候出现冲突报错)
git pull https://github.com/epimetheusQ/omnimate.git master –allow-unrelated-histories输入 git remote add origin https://github.com/epimetheusQ/omnimate.git(git remote add origin 你自己的https地址),连接你的guthub仓库。
输入“git push -u origin master”,上传项目到Github。这里会要求输入Github的账号密码,按要求输入自己的就可以。当你在github上创建包时,默认分支是”main”,有可能会导致异常。
初始化composer至项目
- git初始化后,进入项目目录 然后输入“composer init”命令开始为该项目初始化composer
- 填一些生成composer.json的配置信息
Package name 包的名称 (前面最好用自己的github账号名(保证唯一性),后面用仓库名) : epimetheus/omnimate
description:包的描述。 : 随便填,此处填写的描述,会在git中出现。
Author 包的作者 : 随便填,例如:enpmetheus
Minimum Stability 输入最低版本类型 : dev (这里我们选择开发版),也可以选择 stable
Package Type 项目类型 : 如果想写类库写library,否则project
License [] 授权类型 随便填 : MIT
Would you like to define your dependencies (require) interactively [yes]? 是否选择依赖其他第三方库 依赖选择yes 否则选择 no,可以先不填写,选择yes后根据自己,目所依赖的库进行搜索 然后进行版本号选择
Would you like to define your dev dependencies (require-dev) interactively [yes]? 是否需要require-dev 选择yes 否则选择 no
Do you confirm generation [yes]? yes 是否生成composer.json 确认compose.json文件没有问题 选择yes
如果使用github 这里还会提问 是否把生成的vendor目录放到.gitignore文件隐藏 这里选择 yes然后当前目录下会出现一个composer.json 文件 然后将初始化生成的composer.json文件上传到github仓库( https://github.com/epimetheusQ/omnimate.git )
我们看下生成的结果:
1 | { |
将github的包注册至Package.org
- 进入https://packagist.org 首先要在 Packagist 上注册账号并登录(可以用 GitHub 直接登录)
- 点击顶部导航条中的 Summit 按钮在输入框中输入 GitHub 上的刚才包地址,如:https://github.com/epimetheusQ/omnimate
- 点击 Check 按钮 Packagist 会去检测此仓库地址的代码是否符合 Composer 的 Package 包的要求检测正常的话,会出现 Submit 按钮,再点击一下 Submit 按钮,我们的包就提交到 Packagist 上了
使用git hub 进行登录,git信息会自动同步至包中
git 更新包
发布到Packagist.org在发布到Packagist之前,我们需要在Github创建仓库来存储我们的代码才能提交到Packagist,最好是发布正式版本,进入我们仓库的Github主页,找到导航上“releases”,点击进去创建一个版本,填写好信息之后就可以发布版本了,或者在push到Github的时候带上tag标签推送
git add .
git commit -m ‘xxx’
git push origin xxx分支
git tag v1.0 -a
git push –tags
注意:我们包的命名空间是: Epimetheus\Omnimate{XXXX};
查看 package.org
惊奇的发现,git上的tag已经上传至这里了。
安装
composer require epimetheus/omnimate
此处必须composer 2.0才能安装,如果不确定是1.x 还是 2.x,可以
composer –version
,如果是1.x ,使用
composer self-update –2
切换至 2.x
待解决问题
- 未了解版本稳定性机制
- 版本给的略显随意