https://github.com/owenliang/composer-private-repository
composer私有仓库建设
https://github.com/owenliang/composer-private-repository
composer private-repository
Last synced: 3 months ago
JSON representation
composer私有仓库建设
- Host: GitHub
- URL: https://github.com/owenliang/composer-private-repository
- Owner: owenliang
- Created: 2018-05-07T07:58:10.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-05-08T02:34:47.000Z (over 7 years ago)
- Last Synced: 2025-04-08T04:05:02.223Z (6 months ago)
- Topics: composer, private-repository
- Size: 12.7 KB
- Stars: 23
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# composer私有仓库建设
## 背景
* 新建项目没有规范,随手拷贝已有项目已成"乱象"
* 已有项目对框架侵入严重,每个项目的框架代码都不相同
* 基于复制粘贴复制公共库,代码不一致,无法统一升级更新,效率低下## 目标
* 统一项目脚手架:命令一键创建新项目
* 统一基础公共库:命令一键安装与更新依赖## 路线图
* composer satis + gitlab 私有仓库搭建
* composer工具培训
* 脚手架接入composer仓库
* 图片处理、link处理等常见痛点封装为公共库,接入composer仓库## 架构
基于composer+gitlab搭建整套架构,其中composer类似于java maven、python pip、nodejs npm,是一款可靠的php包管理工具。
```
composer cli <--- packagist.baidu.com <--- gitlab-team.baidu.com
```* 客户端:composer完成依赖配置、安装、更新
* 私有仓库:composer satis搭建,仅维护私有包的索引信息
* 代码托管:gitlab,存储库代码,维护分支与tag## composer安装与使用
### 安装
```
curl -sS https://getcomposer.org/installer | phpmv composer.phar /usr/local/bin/composer
```安装成功后,可以直接使用composer命令。
使用Windows的同学可以通过Phpstorm直接安装与管理composer。
### 创建项目
执行composer init来初始化一个空白项目,也称为"root项目"。
```
composer initWelcome to the Composer config generator
This command will guide you through creating your composer.json config.
Package name (/) [owenliang/myproject]:
```根据提示填入各种信息即可,最终会生成composer.json配置文件。
生成后的composer.json文件如下:
```
{
"name": "owenliang/myproject",
"authors": [
{
"name": "owenliang",
"email": "120848369@qq.com"
}
],
"require": {}
}
```### 安装外部依赖
作为root项目,通常只关心自己依赖哪些包、包的版本是什么。
默认composer只会在[官方仓库](https://packagist.org/)中寻找你要安装的包,例如安装一个elasticsearch的客户端:
```
composer require 'ongr/elasticsearch-dsl:^5.0'
```包的命名遵循:"组织名/包名",是全局唯一的,冒号之后是版本控制,具体规则后面会提供学习链接。
安装这样的第三方包不需要做额外的配置,composer工具总是会到官方仓库中寻找你要安装的包。
现在composer.json如下:
```
{
"name": "owenliang/myproject",
"authors": [
{
"name": "owenliang",
"email": "120848369@qq.com"
}
],
"require": {
"ongr/elasticsearch-dsl": "^5.0"
}
}
```### 安装内部依赖
安装私有仓库的包略有不同,首先需要配置composer私有库的地址,编辑上述composer.json:
```
{
"name": "owenliang/myproject",
"authors": [
{
"name": "owenliang",
"email": "120848369@qq.com"
}
],
"require": {
"ongr/elasticsearch-dsl": "^5.0"
},
"repositories": [{
"type": "composer",
"url": "http://packagist.baidu.com"
}],
"config": {
"secure-http": false
}
}
```现在尝试安装一个私有的包:
```
composer require 'baidu/common:^1.0'
```composer工具会到[私有仓库](http://packagist.baidu.com)查找这个包,如果没找到还会去默认的官方仓库查找。
未来可以移除secure-http选项,因为最终私有仓库域名会改为https协议。
### 常用命令
* 初始化composer.json:
```
composer init
```* 安装依赖
```
composer require "组织名/库名:版本控制"
```* 删除依赖
```
composer remove "组织名/库名"
```* 升级依赖(先修改composer.json中的依赖配置)
```
composer update
```* 清空缓存
```
composer clearcache
```### 引入composer自动加载
composer安装的包文件存储在vendor目录。
为了在自己的项目中使用安装的依赖库,需要加载composer的autoload函数,这样才能访问到包中的类和方法:
```