编写一个私有的composer包

 很多时候,多人开发一个项目的时候,我们需要统一管理依赖和一些类库文件,不然每个人引入自己的类源码,造成累赘,和使用方法不一混乱的局面。所以现在很多流行框架都用composer来管理。

大部分都是github上创建自己的依赖包,然后Packagist来发布,最后composer下载到自己的项目。但是有时候我们需要用的类库是涉及隐私的,不方便公开,怎么办。这个时候需要我们自己配配置composer下载源

下面的例子:是以本地搭建的gitlab为仓库(内部才能访问).

 

一、环境信息

目前gitlab网址为 http://git.weshineapp.com

假设要安装的包名为 weshine/weshineLib

:包名带斜杠/    这是composer包规定格式

 

二、修改 composer 全局 config  

文件路径 /root/.composer/config.json (路径大部分为这个)

因为 git.weshineapp.com 使用 HTTP 协议, 所以secure-http 要设为false

设置gitlab-domains 告诉 Composer 相应的域名可以使用 GitLab API   

 

内容如下:

编写一个私有的composer包_第1张图片

{
 "config": {
 "secure-http": false,
 "gitlab-domains": [
    "git.weshineapp.com"
  ]
 }
}

 

三、在gitlab上创建一个项目

编写composer.json文件,然后提交到仓库上。此时因为有了composer.json文件,该项目相当于一个包文件

 

:composer.json中具体的文件对应加载类型,需要根据文件的作用,自行判断,加载类型含义可参考网址:http://laravelacademy.org/post/7074.html (推荐psr-4加载类型)

 

个人理解

psr-0 :已经被废弃,原因目录结构太深,不适用

files :一般对应公共函数的文件

class-map :顾名思义,只是做了一个映射而已,这种最普通的自动加载,如果项目够大,文件很多,容易产生类名冲突

psr-4:会自动给相应文件夹下的类文件,自动添加一个和文件夹同名的命名空间前缀,然后进行相应加载。可以有效避免类名冲突的问题。

 

加载原理:可追溯vendor文件夹下的autoload文件。

例如:以下是我的conposer.json配置

编写一个私有的composer包_第2张图片

 

 

四、在其他项目中使用第三步创建好的包,实现自动加载

在项目的根目录中,使用composer init命令 然后一直回车,默认创建一个composer.json的文件,然后进行编写,大致内容如下:

编写一个私有的composer包_第3张图片

最后: 编写完成composer.json 文件之后,可以使用 composer update 命令进行安装,或者更新。

你可能感兴趣的:(PHP)