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": "*" } -