前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 Satis 创建 Composer 私有库

使用 Satis 创建 Composer 私有库

原创
作者头像
俗可耐
发布2018-09-13 18:03:14
2.2K0
发布2018-09-13 18:03:14
举报
文章被收录于专栏:俗人笔记俗人笔记

本文中使用satis搭建内部的composer仓库

创建Composer包

首先要先创建一个Composer包,可参考:创建你的第一个composer包

创建好之后,可以托管到任意的VCS仓库里,如:GIT、SVN等,也可以放在本地以Path的方式指定路径,更多可参考:点击这里

安装satis

代码语言:txt
复制
$ composer create-project composer/satis --stability=dev --keep-vcs
$ mv satis private_composer_repo
$ cd private_composer_repo

创建配置文件

下例中,我们使用两个已经创建的Composer包,包名分别为:greatcl/package01greatcl/package02,分别以公开和私有的方式托管在Gitlab上。

创建satis的配置文件satis.json。

代码语言:txt
复制
{
    "name": "My Private Composer Repository",
    "homepage": "http://composer.domain.name",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://gitlab.com/greatcl/package01.git"
        },
        {
            "type": "vcs",
            "url": "git@gitlab.com:greatcl/package02.git",
            "options": {
                "ssh2": {
                    "username": "composer",
                    "pubkey_file": "/home/greatcl/.ssh/id_rsa.pub",
                    "privkey_file": "/home/greatcl/.ssh/id_rsa"
                }
            }
        }
    ],
    "require": {
        "greatcl/package01": "dev-master",
        "greatcl/package02": "*"
    }   
}

其中repositories段配置的是你的composer包托管的仓库地址。

生成仓库目录

在satis项目根目录下执行如下命令,将会生成静态的仓库目录public/。添加--no-interaction选项,使build命令使用公钥进行授权验证,而不是交互式的询问用户名密码。

注意:你可能需要先在github或其他代码托管系统的某个账号里加入satis服务器的公钥。

代码语言:txt
复制
$ php bin/satis build --no-interaction satis.json public

配置一个虚拟站点指向public目录,我们可以在浏览器上访问到此站点的页面。

Satis
Satis

注意:如果我们代码仓库的url不是https的,可能需要设置composer的配置项secure-http为false。

在代码中引用

需要引用私有包的项目的composer.json文件中加入repositories信息:

代码语言:txt
复制
{                                               
    "require": {                                
        "greatcl/package01": "dev-master",      
        "greatcl/package02": "dev-master"       
    },                                          
    "repositories": [                           
        {                                       
            "type": "composer",                 
            "url": "http://composer.domain.name"
        }                                       
    ]                                           
}                                               

如果项目初次使用composer执行composer install进行安装,否则使用composer update进行更新。

下载

上面配置已经可以实现私有仓库的功能了,但是目前每次有项目要引用这些包的时候,都需要去托管的仓库里clone代码,这样速度就会比较慢。

我们可以配置让satis将所有require的包下载到本地,这样就不会每次去clone代码了。在satis.json中添加以下代码:

代码语言:txt
复制
{
    "archive": {
        "directory": "dist",
        "format": "tar",
        "skip-dev": true
    }
}

参数说明:

  • directory 必须的,在输出目录中的包存放的目录(在output-dir中)
  • format 可选的,zip(默认)或者tar
  • prefix-url 可选的,下载链接的地址,默认是homepage(satis.json中的配置)加上directory
  • skip-dev 可选的,默认是false,当设置true时,不会下载分支的代码,只会下载tag的代码
  • absolute-directory 可选的,存放dist文件的本地绝对目录,而不是output-dir/directory
  • whitelist 可选的,如果设置为一些包名的列表,则只会下载这些包的文件
  • blacklist 可选的,如果设置为一些包名的列表,则不会下载这些包的文件
  • checksum 可选的,默认是true,设置为false时,satis不会检测dist文件的sha1 checksum

至此,一个基本的私有Composer仓库就搭建完成了。

参考资料

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建Composer包
  • 安装satis
  • 创建配置文件
  • 生成仓库目录
  • 在代码中引用
  • 下载
  • 参考资料
相关产品与服务
代码托管
CODING 代码托管(CODING Code Repositories,CODING-CR)是为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档