Composer包构建文件
{
"name": "liujianxin/message-service-packagist",
"description": "chang yu jun ge .TECH Message-service",
"version": "1.0.6",
"type": "library",
"license": "MIT",
"authors": [
{
"name": "liujianxin",
"email": "jiujianxin0122@gmail.com"
}
],
"require": {
"php": "^7.3 || ^8.0",
"guzzlehttp/guzzle": "^7.0.1"
},
"require-dev": {
"phpunit/phpunit": "^9.0",
},
"autoload": {
"psr-4": {
"ChangYuJunGe\\Message\\": "src/"
},
"files": [
"src/Helpers/functions.php"
]
},
"autoload-dev": {
"psr-4": {
"Vendor\\Project\\Tests\\": "tests/"
}
},
"scripts": {
"post-install-cmd": [
"Vendor\\Project\\ScriptHandler::postInstall"
],
"post-update-cmd": [
"Vendor\\Project\\ScriptHandler::postUpdate"
],
"test": "phpunit"
},
"config": {
"optimize-autoloader": true,
"sort-packages": true
},
"extra": {
"branch-alias": {
"dev-main": "1.0-dev"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}- type:包的类型
- license:包的授权许可协议
- require: 定义包的运行时依赖项
- require-dev:定义包的开发依赖项
scripts: 定义在特定事件后执行的脚本
"post-install-cmd": 在composer install后执行"post-update-cmd": 在composer update后执行"test": 自定义命令,运行composer test时执行
autoload:定义了 PSR-4 和文件级别的自动加载规则
"psr-4": 将ChangYuJunGe\\Message\\命名空间映射到src/目录。"files": 自动加载src/Helpers/functions.php文件。
Composer包的其他安装方式
- path 存储库:适用于本地开发,使用相对路径或者绝对路径引用本地包。
- vcs 存储库:适用于远程版本控制系统上的包,通过 SSH 或 Access Token 访问。
远程自建仓库:适用于私有的 Composer 仓库,使用 HTTP Basic Auth 或其他认证方式访问。
- 使用Packagist搭建私有 Composer 仓库
- 配置 HTTP Basic Auth 或其他认证方式来限制访问。
{ "repositories": [ { "type": "composer", "url": "https://your-private-composer.com" } ], "config": { "http-basic": { "your-private-composer.com": { "username": "your-username", "password": "your-password" } } }
GitLab CI/CD 令牌:适用于通过 CI/CD 自动部署,使用 GitLab CI/CD 令牌访问私有仓库。
- 在 GitLab 项目中,创建一个 CI/CD 令牌,该令牌有权限访问私有仓库
配置
.gitlab-ci.yml文件stages: - install variables: # 配置 Composer 使用 CI_JOB_TOKEN 进行身份验证 COMPOSER_AUTH: '{"http-basic": {"gitlab.com": {"username": "gitlab-ci-token", "password": "$CI_JOB_TOKEN"}}}' install_dependencies: stage: install script: - composer install
符号链接(symlink):可以在开发过程中方便地引用本地代码,而不必每次修改后都发布新的版本。
创建一个符号链接指向你的本地库
ln -s /path/to/local-library vendor/vendor-name/package-name- 配置 Composer
{ "repositories": [ { "type": "path", "url": "../path/to/local-library" } ], "require": { "vendor-name/package-name": "*" }
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。