2020-08-06

PHP私有composer搭建

 

说明:

实现方式比较简单,本质上,只要找到composer包的所在位置的目录即可完成构建, 那么这个目录可以是远程目录,也可以是本机目录.

实现的关键点,是怎么去构建自己的项目包,以及把项目包托管到哪里

 

实现步骤:

 

编辑自己的包,构建好composer.json

demo如下:

1.新建目录demo, 并在里面新建composer.json文件,填入以下代码:

{
    "name": "bookan/config",
    "description": "私有composer测试所用",
    "version": "1.0.0",
    "type": "library",
    "homepage": "http://bookan.com",
    "require": {
      "php": ">=7.0"
    },
    "license": "MIT",
    "authors": [
      {
        "name": "xxxx",
        "email": "test@test.com",
        "role": "Developer"
      }
    ],
    "minimum-stability": "stable",
    "autoload": {
      "psr-4": {
        "bookan\\": "src/bookan"
      }
    }
  }
​
​

代码中的字段意义可以去官网查看,官网地址

https://docs.phpcomposer.com/04-schema.html#JSON-schema

比较重要的,需要注意的字段为:

name 包名

version 版本

autoload 以及包在使用的时候的所在位置

type 包类型,我们自己的项目中恒定为默认的 library 即可

 

 

2.构建完composer.json后,即可编写自己的包提供的内容,我的demo如下:

在项目根目录新建src/bookan/config, 然后新建文件mysql.php,填入如下代码

<?php
namespace bookan\config;
​
class Mysql
{
    public function hello()
    {
        echo "hello";
    }
​
    public function getConfig()
    {
        return array(
            "bkuser"=>["username"=>"xxx","host"=>"yyy","port"=>444],
            "appserver"=>["username"=>"appserver","host"=>"appserver","port"=>555],
        );
    }
}

 

自己的composer包已构建完成, 此包一共提供了2个方法, 即 (mysql::hello) 与 (mysql::getconfig).

 

  1. 包在构建完成以后, 即可上传远程仓库,否则只能自身使用了.

     

     

将构建好的包托管到远程服务器,可以是git,也可以是svn,甚至可以是ftp,sftp等.

上传方式非常简单, 在我司所使用的是gitlab, 那么就只需要提交到gitlab的主分支即可,如果使用其他分支,需要额外的配置,这里不做详解

 

在其他项目构建好composer.json的依赖关系,即可投入生产

其他项目,在使用私有包的时候,需要添加好依赖, 以及私有包的镜像地址. 添加方式比较简单,如下:

{
  "require": {
    "bookan/config" : "*"
  },
  "minimum-stability": "dev",
  "repositories": {
    "localconfig": {
      "type": "path",
      "url": "E:\\code\\mytest\\localconfig"
    },
    "gitlab":{
      "type": "vcs",
      "url" : "git@xxxx:xxxx/composer.git"
    }
  }
}

字段意义:

require 即为包名依赖包,以及依赖的版本, 在里面添加我们私有包的包名即可, 即与私有包的composer.json里面的name字段相对应

repositories 为所有的镜像集合, 在其中添加一个配置即可, 当前项目中命名为gitlab.

添加完成以后即可使用命令:

composer install -vvv

composer update -vvv

来下载使用依赖包了.

 

项目实践:

可以用私有包管理项目中的配置文件,比如mysql 链接配置等....

线上目录可以使用 gitlab 的仓库

本地的测试环境可以走 local环境, 即用本地的composer仓库取代gitlab仓库.

实现方式比较简单,上述demo里面已经实现,上述demo里面的composer.json->repositories->localconfig 配置

 

 

注意:

使用gitlab方式的时候, 需要鉴权, 必须要能"一键"走通整个git clone流程, 即不能使用输入账号密码等模式, 必须使用ssh -rsa 的键值对..

添加ssh key的方式如下:

  1. 生成ssh key 使用命令:

    ssh-keygen -t rsa -C "xxxxxxx"

    然后一直回车即可.

  2. windows 打开文件夹 %USERPROFILE%/.ssh 目录,(linux目录为用户目录), 找到里面的 id_rsa.pub ,将文件内容复制到 gitlab 的用户->设置->ssh秘钥, 保存即可

  3. 如有端口问题,如ssh默认非22,需要添加配置文件, 文件所在路径为%USERPROFILE%/.ssh/config 内容为:

Host 219.140.xxx.xxx
    Port xxx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值