安装 composer
https://docs.phpcomposer.com/00-intro.html
curl -sS https://getcomposer.org/installer | php
配置 composer.json
{
"require": {
"用户名/包名称": "版本号",
"monolog/monolog": "1.0.*",
"knowbox/susuan-common-libs": "^1.0",
},
"repositories": {
// 从哪里找到这个包
// 可以使用命令行的方式指定
// composer config repositories.knowbox/susuan-ocr-libs vcs git@gitee.com:knowbox_server_dev_group/susuan-ocr-libs.git
"knowbox/susuan-common-libs": {
"type": "vcs",
"url": "git@gitee.com:knowbox_server_dev_group/susuan-common-libs.git"
},
"knowbox/susuan-ocr-libs": {
"type": "vcs",
"url": "git@gitee.com:knowbox_server_dev_group/susuan-ocr-libs.git"
}
}
}
版本号
版本号语法
- 指定版本 1.0.2
- 范围 ~1.0 或 ^1.0
~ 和 ^ 的区别
~和^的意思很接近,在x.y的情况下是一样的都是代表x.y <= 版本号 < (x+1).0,但是在版本号是x.y.z的情况下有区别,举个例子吧:
~1.2.3 代表 1.2.3 <= 版本号 < 1.3.0 (小版本号)
^1.2.3 代表 1.2.3 <= 版本号 < 2.0.0 (大版本号)
安装
composer install
- 下载项目到
vendor/用户名/包名
下 - 创建一个
composer.lock
项目
注:在 .gitignore 中加入 vendor, 将 composer.lock 加入版本库
composer.lock
如果包在 composer.lock 中能够找到,那么就不会去 composer.json 中去找。
所以如果有 composer.lock 文件时,可以保证项目的其他参与人员 composer install 的时候包的版本时一致的。
自动加载
项目加载时要加上这一个语句。
require(__DIR__ . '/../../vendor/autoload.php');
{
"autoload": {
"psr-4": {
// 命名空间 与 目录的对应关系
// 命名空间后面必须是两个反斜线
"Acme\\": "src/"
}
}
}
PSR-4 标准
PSR-4使代码更加规范,能够满足面向package的自动加载,它规范了如何从文件路径自动加载类,同时规范了自动加载文件的位置。
https://www.php-fig.org/psr/psr-4/
真正的 autoloader
image-20181011095916792更新
composer update
根据 composer.json 中的版本匹配规则更新到最新版本(所有包)。并更新 composer.lock
composer update 用户名/包名
更新 composer.json 中指定的包。并更新 composer.lock
创建自己的包
{
"name": "knowbox/susuan-ocr-libs", // 用户名/包名 (如果不用发布为一个库的话,那么不用指定 name)
"description": "ocr common service", // 简介
"type": "library", //
"authors": [
{
"name": "Wu Danyang",
"email": "wudy1@knowbox.cn"
}
],
"autoload": {
"files": [
"Config/OcrCacheKey.php" // 自动加载的文件
],
"psr-4": {
"Ocr\\Common\\": "Common/" // 按照 psr-4 映射的命名空间与路径
}
},
"require": {
"php": ">=7.1", // 平台软件包版本
"yiisoft/yii2": "^2.0"
}
}
设置包的版本号
手动创建
{
"version": "1.0.0"
}
根据标签(tag) 或者分支名称创建
标签
对于每一个看起来像版本号的标签,都会相应的创建一个包的版本。它应该符合 'X.Y.Z' 或者 'vX.Y.Z' 的形式,-patch
、-alpha
、-beta
或 -RC
这些后缀是可选的。在后缀之后也可以再跟上一个数字。
下面是有效的标签名称的几个例子:
- 1.0.0
- v1.0.0
- 1.10.5-RC1
- v4.4.4beta2
- v2.0.0-alpha
- v2.0.4-p1
分支
对于每一个分支,都会相应的创建一个包的开发版本。如果分支名看起来像一个版本号,那么将创建一个如同 {分支名}-dev
的包版本号。例如一个分支 2.0
将产生一个 2.0.x-dev
包版本(加入了 .x
是出于技术的原因,以确保它被识别为一个分支,而 2.0.x
的分支名称也是允许的,它同样会被转换为 2.0.x-dev
)。如果分支名看起来不像一个版本号,它将会创建 dev-{分支名}
形式的版本号。例如 master
将产生一个 dev-master
的版本号。
下面是版本分支名称的一些示例:
- 1.x => 1.x-dev
- 1.0 (equals 1.0.x) => 1.0.x-dev
- 1.1.x => 1.1.x-dev
其他
提高包下载速度
详见 composer 中国镜像:https://pkg.phpcomposer.com/
提高 yii2 install 速度
Yii2 composer install 的时候会加载一些无用的包
可以参考以下不安装依赖,提高 install 速度:
https://github.com/yidas/yii2-bower-asset
git tag
git tag -a ( -s -u ) tagname -m "message" # 打 tag
git tag -l 'v-*' # 列出 tag
网友评论