动态

详情 返回 返回

PHP Composer包的其他安裝方式 - 动态 详情

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": "*"
        }
user avatar tpwonline 头像 wujingquan 头像 kinra 头像 yuhuashi_584a46acea21f 头像 sy_records 头像 headofhouchang 头像 hushuosha 头像 crmeb 头像 phpercode 头像 kingluo 头像 huaming 头像 xiaotuyu 头像
点赞 14 用户, 点赞了这篇动态!
点赞

Add a new 评论

Some HTML is okay.