如何釋出一個 Composer 包

shichen501發表於2020-11-20

流程

參考: https://packagist.org/about#how-to-update-packages

Composer 說明

說明

  • 包名在 composer.json 確定
  • 版本號由倉庫的釋出版本確定, 必須釋出第一個版本才能進行下載
  • 建議使用 PSR-4

目錄結構

├── CHANGES.md  
├── LICENSE  
├── README.md  
├── .gitignore  
├── composer.json  
├── sample  
└── src

CHANGES.md

更新說明

1.0.0 / 2020-11-20
----------

- 新增生成 token
- 新增閘道器請求

LICENSE

開源協議, 替換公司名稱

MIT License

Copyright (c) 2020 XXXXXX

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

README.md

圖示: https://poser.pugx.org/

  • Installation
  • Usage
  • Example usage

composer 通用說明

### 安裝
推薦使用 Composer 安裝 dhccam-sdk,Composer 是 PHP 的依賴管理工具,允許您宣告專案所需的依賴,然後自動將它們安裝到您的專案中。

> 您可以在 [Composer 官網](https://getcomposer.org/) 上找到更多關於如何安裝 Composer,配置自動載入以及用於定義依賴項的其他最佳實踐等相關資訊。

#### 安裝步驟:

1. 開啟終端。
2. 下載 Composer,執行以下命令。

```
curl -sS https://getcomposer.org/installer | php
```

3. 建立一個名為`composer.json`的檔案,內容如下。

```json
{
    "require": {
        "xxxxxxxx/xxxx": "1.*"
    }
}
```

4. 使用 Composer 安裝,執行以下命令。

```
php composer.phar install
```

使用該命令後會在當前目錄中建立一個 vendor 資料夾,裡面包含 SDK 的依賴庫和一個 autoload.php 指令碼,方便在專案中呼叫。

5. 通過 autoload.php 指令碼呼叫 dhccam-sdk。

```php
require '/path/to/vendor/autoload.php';
```

.gitignore

忽略 IDE 部分

.vscode/
.idea/

composer.json

  • 通過 composer init 生成
  • 新增 php 版本要求
  • 新增 psr-4
{
    "name": "xxxxxxxx/xxxx-sdk",
    "description": "PHP SDK for XXXXXX",
    "type": "library",
    "require": {
        "php": "^7.1"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "iamname",
            "email": "iamname@163.com"
        }
    ],
    "prefer-stable": true,
    "autoload": {
        "psr-4": {
            "XXXXX\\Xxxxxx\\": "src/"
        }
    },
    "minimum-stability": "dev"
}

src

  • 原始碼位置, 名稱空間和 composer.json 對應上

sample

  • 原始碼呼叫例項, 引用參考 require __DIR__. '/../vendor/autoload.php';

問題

  1. 遠端倉庫位置
    建議使用 GitHub, 使用 gogs 需要修改配置 REQUIRE_SIGNIN_VIEW = true 為 false, 即允許公共包不需要賬號密碼即可檢視, 可能存在原始碼洩露風險

修改配置

/home/git/gogs/custom/conf/app.ini

# 重啟服務
service gogs restart

開始

步驟一 建立遠端倉庫

  1. 登入 GitHub 新建包

    名稱: XXXX
    描述: PHP SDK for XXXX
    Public
    MIT License

  2. 本地克隆

git clone https://www.domain.com/git/mediway/XXXX.git
  1. 工程初始化
  2. 提交

步驟二 提交 packagist.org

參考: https://packagist.org/

  1. 點選提交 Submit
  2. 輸入 GitHub 地址

自動更新

  1. 登入 GitHub
  2. 切換回 https://packagist.org/
  3. 點選使用者 -> Setting
  4. connect GitHub

手動更新

  • username 更換為當前登入優化
  • apiToken 更換為對應的 apiToken
  • repository.url 更換為對應包的地址
curl -XPOST -H'content-type:application/json' 'https://packagist.org/api/update-package?username=xxxxx&apiToken=xxxxx' -d'{"repository":{"url":"https://packagist.org/packages/mediway/xxxx"}}'

相關文章