git composer 新創建包,發佈到packagist上筆記

git composer 新創建包發佈到packagist上

開發一個 composer 通用文件上傳包,發佈到 Packagist,並在 Laravel 中測試

一、GitHub 創建一個名 uploadfile 新倉庫,並克隆至本地。

二、初始化項目,生成composer.json文件

2.1 步驟解釋

$ composer init


Welcome to the Composer config generator

This command will guide you through creating your composer.json config.

// 1. 輸入項目命名空間
// 注意<vendor>/<name> 必須要符合 [a-z0-9_.-]+/[a-z0-9_.-]+
Package name (<vendor>/<name>) [dell/htdocs]: yourname/projectname

// 2. 項目描述
Description []: 這是一個測試

// 3. 輸入作者信息,可以直接回車
Author [feiker.hong <[email protected]>, n to skip]:

// 4. 輸入最低穩定版本,stable, RC, beta, alpha, dev
Minimum Stability []: dev

// 5. 輸入項目類型,
Package Type (e.g. library, project, metapackage, composer-plugin) []: library

// 6. 輸入授權類型
License []:
> Define your dependencies.

// 7. 輸入依賴信息
Would you like to define your dependencies (require) interactively [yes]?

// 如果需要依賴,則輸入要安裝的依賴
Search for a package: php

// 輸入版本號
Enter the version constraint to require (or leave blank to use the latest version): >=5.4.0

// 如需多個,則重複以上兩個步驟

// 8. 是否需要require-dev,
Would you like to define your dev dependencies (require-dev) interactively [yes]?

// 操作同上
{
    "name": "guanguans/uploadfile",
    "description": "一個通用文件上傳包",
    "type": "library",
    "require": {
        "php": ">=7.0"
    },
    "require-dev": {
        "php": ">=7.0"
    },
    "license": "MIT",
    "authors": [
        {
            "name": "feiker.hong",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev"
}

// 9. 是否生成composer.json
Do you confirm generation [yes]? yes

三、添加自動加載

在上一步生成的composer.json中追加

"autoload": {
    "psr-4": {
        "Plugins\\": "src/"
    }
}

四、構建項目

4.1 新建uploadfile/src/UploadFile.php

├─uploadfile                
│  ├─src                     
│  │  ├─UploadFile.php
│  └─composer.json

4.2 測試

4.2.1 終端下執行 composer install,這時會生成vendor目錄,及其他文件

$ composer install

 

五、添加 README.mdLICENSE.gitignore等文件

├─uploadfile                擴展包根目錄
│  ├─src                    擴展包代碼目錄
│  │  ├─UploadFile.php
│  ├─test                   測試目錄
│  │  ├─uploadfile.html
│  │  ├─UpploadfileTest.php
│  ├─.gitignore
│  ├─composer.json
│  ├─LICENSE
│  └─README.md

六、推送到 GitHub

git add .
git commit -m 'init'
git tag v1.0.0 // 記住打一個版本號
git push origin master
git push v1.0.0

七、將 GitHub 上的包提交到 Packagist

  1. 首先要在 Packagist 上註冊賬號並登錄(可以用 GitHub 直接登錄)
  2. 點擊頂部導航條中的 Summit 按鈕
  3. 在輸入框中輸入 GitHub 上的剛纔包地址,如:https://github.com/xxx/xxx
  4. 然後點擊 Check 按鈕 Packagist 會去檢測此倉庫地址的代碼是否符合 Composer 的 Package 包的要求

檢測正常的話,會出現 Submit 按鈕,再點擊一下 Submit 按鈕,我們的包就提交到 Packagist 上了

八、設置 composer 包自動更新

上面提交上的包提交的包,當我們更新 GitHub 倉庫時,Packagist 上面的的包並不會自動更新,現在我們來設置一下自動更新

8.1 複製 Profile API Token

8.2 打開 GitHub 項目 setting,選擇 Integrations & services,添加 packagist service,點擊 Test service

8.3 驗證是否已經自動更新

移步 Packagist 包主頁,發現已經沒有了紅色的圈住的提示,說明設置自動更新成功。

 

 

 

九、項目中使用

我以 Laravel 中使用舉例

composer create-project laravel/laravel
cd laravel
composer require xxx/uploadfile

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章