在Github创建的PHP项目,通常是通过composer进行依赖资源包的管理,然后有些时候自己在git上的项目,别人使用composer下载的时候,报出项目找不到的问题,这个时候,就需要在Github和Packagist之间建立一个联动关系。
实践案例
楼主个人在Github上的项目yii2-library,便是通过composer进行管理,composer.json的相关配置如下:
{
"name": "liumapp/yii2-library",
"description": "common library for yii2",
"version":"v1.0.0",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "liumapp",
"email": "liumapp.com@gmail.com",
"homepage": "http://www.liumapp.com",
"role": "Creator"
}
],
"require": {
"php": ">=5.4.0",
"yiisoft/yii2": "2.0.10",
"yiisoft/yii2-bootstrap": "2.0.6",
"bower-asset/pace": "^1.0",
"bower-asset/fontawesome": "4.7",
"bower-asset/bootstrap3-wysihtml5-bower":"*",
"bower-asset/bootstrap-datepicker":"v1.6.4",
"bower-asset/eonasdan-bootstrap-datetimepicker":"v4.14.30",
"bower-asset/select2":"4.0.3",
"bower-asset/ztree_v3":"v3.5.26",
"bower-asset/echarts":"3.3.2"
},
"autoload": {
"psr-4": {
"liumapp\\library\\": ""
}
}
}
然后我们在本地新建一个项目,添加对liumapp/yii2-library的依赖,相关代码如下:
"require": {
"liumapp/yii2-library":"dev-master"
},
然后我们执行
composer install
不出意外,命令行会给出以下错误信息:
The requested package liumapp/yii2-library could not be found in any version, there may be a typo in the package name.
具体解决方案
登录packagist官网,并使用Github帐号登录,然后点击右上角的submit按钮
到自己的Github项目页面上,复制我们的git链接,我这里的链接是 https://github.com/liumapp/yii2-library.git ,然后填写到packagist下面的submit输入框里
再回到github项目页
- 点击“Settings”
- 点击”Integrations & services”
- 添加一个 “Packagist” service, 然后根据说明进行配置
- 再进行一次commit操作就可以成功关联
操作完后,我们重新执行composer install 便能够成功下载到自己的项目了。