php開發(fā)中界酒,會遇到需要引用公司內(nèi)部開發(fā)的組件圣拄。內(nèi)部組件放在私有g(shù)it上,用以下方式引用:
在項目composer.json中添加包配置毁欣。
- git庫在本地
{
"repositories": {
"0": {
"type": "package",
"package": {
"name": "hwnet/tecomp",
"version": "1.0.1",
"source": {
"url": "file:///media/sf_git/tecomp",
"type": "git",
"reference": "bda1d03"
}
}
}
},
"require": {
"hwnet/tecomp": "1.0.1"
}
}
- git庫在局域網(wǎng)庇谆,如果url是http,不是https凭疮,還需要在config里定義 "secure-http": false
{
"repositories": {
"0": {
"type": "package",
"package": {
"name": "hwnet/tecomp",
"version": "1.0.1",
"source": {
"url": "http://192.168.0.1/git/tecomp",
"type": "git",
"reference": "bda1d03"
}
}
}
},
"require": {
"hwnet/tecomp": "1.0.1"
},
"config": {
"secure-http": false
}
}
如果該git是public的饭耳,則不需要任何處理,如果git是需要登錄的执解,在項目的根目錄下(和composer.json
平級的目錄)增加一個auth.json
{
"http-basic":{
"http://192.168.0.1/git/tecomp":{
"username":"",
"password":""
}
}
}
git出來的庫在vendor目錄下寞肖。如果在執(zhí)行composer后,需要刪除拉下來的.git目錄衰腌,可以在composer.json中加入鉤子新蟆。
"scripts": {
"post-install-cmd": [
"find vendor -type d -name .git -exec rm -rf '{}' \\;"
],
"post-update-cmd": [
"find vendor -type d -name .git -exec rm -rf '{}' \\;"
]
}
- 另外,還可以用文件的形式把組件分發(fā)出來右蕊。composer.json可以像下面這樣寫琼稻。下載的文件會放在vendor目錄下,zip文件會自動解開尤泽。
{
"repositories": {
"0": {
"type": "package",
"package": {
"name": "hwnet/asset01",
"version": "1.0.0",
"dist": {
"url": "http://192.168.10.53/smb.txt",
"type": "file"
}
}
},
"1": {
"type": "package",
"package": {
"name": "hwnet/asset02",
"version": "1.0.0",
"dist": {
"url": "http://192.168.10.53/W.zip",
"type": "zip"
}
}
}
},
"require": {
"hwnet/asset01": "1.0.0",
"hwnet/asset02": "1.0.0"
},
"config": {
"secure-http": false
}
}