blog/_posts/编程/PHP/composer.md

89 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: ✍PHP的composer相关用法说明
date: 2023-10-06
tags: PHP
---
本篇文章记录php的composer组件包一些用法
## 引用本地未发布的包
要引用本地未发布的包,只需要在composer.json中`repositories`仓库为为本地项目地址即可,如下所示:
```json
{
"repositories": [
{
"type": "path",
"url": "/path/to/local/package"
}
],
"require": {
"your-package": "dev-master"
}
}
```
然后执行`composer install` 或 `composer require <your-package@dev-master>`
## 排除特定文件或目录不被自动加载
在composer.json中配置`exclude-from-classmap`即可,如下所示:
```json
{
"autoload": {
"psr-4": {
"App\\": "src/"
},
"exclude-from-classmap": [
"src/Helper/Deprecated.php",
"src/UnusedDirectory/"
]
}
}
```
## composer 版本号约定规则
Composer中版本号遵循语义化版本Semantic Versioning的约定规则。语义化版本由三个数字组成MAJOR.MINOR.PATCH。以下是每个部分的含义
1. MAJOR主要版本号。当您进行不兼容的API更改时应该增加主要版本号。这表示可能会引入破坏性更改可能需要重新编写依赖于该软件包的代码。
2. MINOR次要版本号。当您添加向后兼容的功能时应该增加次要版本号。这表示没有破坏性更改只是增加了新功能。
3. PATCH补丁版本号。当您进行向后兼容的错误修复或其他维护性更改时应该增加补丁版本号。这表示没有破坏性更改或新功能只是修复了一些错误。
此外,版本号还可以包含预发布标识符和构建元数据。预发布标识符用于标识非稳定版本,例如`alpha`、`beta`、`rc`等。构建元数据用于标识特定构建的额外信息。
**以下是一些版本号示例:**
1. 1.0.0稳定的版本1.0.0。
2. 2.1.3稳定的版本2.1.3。
3. 3.0.0-alpha3预发布版本3.0.0的第3个alpha版本。
4. 1.2.0-beta2+20130313144700预发布版本1.2.0的第2个beta版本并带有构建元数据。
5. ^1.0允许任何1.x版本但不包括2.0及更高版本。
6. ~1.2.3允许任何1.2.x版本但不包括1.3及更高版本。
7. \>=1.0,<2.0允许1.x版本但不包括2.0及更高版本
8. 6.1|7.1 允许6.1或7.1 版本
9. 1.1.* 1.1.X 所有版本
## composer 新增自定义脚本
在composer.json中配置`scripts`即可如下所示
```json
{
"scripts": {
"scripts-name": "echo 'This is a post-installation script.'"
}
}
```
`scripts-name` 是脚本命令名称,执行命令如`composer post-install-cmd` 即执行`echo 'This is a post-installation script.'`shell命令
除了自定义脚本命令之外composer包含`post-install-cmd` `pre-update-cmd` 等相关内置命令
1. `post-install-cmd` 用于在安装依赖后执行自定义操作当运行composer install命令时Composer会在安装依赖包之后自动运行post-install-cmd脚本
2. `pre-update-cmd` 用于在更新依赖包之前执行自定义操作当运行composer update命令时Composer会在更新依赖包之前自动运行pre-update-cmd脚本
更多的composer 一些使用说明请移步[composer中文文档](https://docs.phpcomposer.com/)。