首頁  >  文章  >  開發工具  >  重構Composer來源管理工具CRM為Composer插件

重構Composer來源管理工具CRM為Composer插件

藏色散人
藏色散人轉載
2019-08-27 14:13:462989瀏覽

下面由composer使用教學欄位為大家講解如何重構Composer來源管理工具CRM為Composer插件,希望對需要的朋友有幫助!

重構Composer來源管理工具CRM為Composer插件

CRM 是我很久之前為管理composer 來源所做的命令列工具,旨在透過簡單的命令在多個中國鏡像切換,從而方便的管理它們;

那時候我對composer 插件了解不是特別多,所以做法比較也粗暴,底層通過執行composer 命令來達到切換源的目的,在linux 上用起來還好幾乎沒有特別的感知,但win 上就會有些遲鈍了。這也是顯而易見的畢竟切換的時候相當於同時執行了多個命令;後來由於工作的機會了解了一下composer 插件的開發,所以也就萌生了重構的念頭;

與1.x版本相比,2.x 主要有以下一些改變:

元資料儲存位置改變

#在1.x 版本是在使用者的Home 資料夾下自訂的一個文件,使用者所有的​​操作都最終持久化到這個json 文件裡去;新版則將元資料儲存到了composer 全域路徑下的config.json 裡:

{
    "config": {
        "_alias": {
            "val": "validate",
            "up": "update",
            "req-sf": "require symfony/event-dispatcher symfony/console",
            "req": "require",
            "i": "install"
        },
        "_repositories": [{
                "name": "composer",
                "url": "https://packagist.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "phpcomposer",
                "url": "https://packagist.phpcomposer.com",
                "homepage": "",
                "author": ""
            }, {
                "name": "composer-proxy",
                "url": "https://packagist.composer-proxy.org",
                "homepage": "",
                "author": ""
            }, {
                "name": "laravel-china",
                "url": "https://packagist.laravel-china.org",
                "homepage": "",
                "author": ""
            }]
    },
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.laravel-china.org"
        }
    }
}

這個是composer 維護的一個文件,我們借用了一下在裡面佔用了一個欄位。這麼做也更符合了composer 生態

指令的改變

1.x 版本是獨立入口應用,指令都是以crm 關鍵字開始,例如crm ls之類的;在新版外掛化裡crm 變成了一個指令提供者(command provider) 角色,所以在新版我們使用composer 入口;

新版用法

#列出所有可使用的映像

$ composer repo:ls
  composer       https://packagist.org
  phpcomposer    https://packagist.phpcomposer.com
* composer-proxy https://packagist.composer-proxy.org
  laravel-china  https://packagist.laravel-china.org

標「*」 表示目前正在使用的來源;

切換映像##

$ composer repo:use
Please select your favorite registry (defaults to composer)
  [0] composer
  [1] phpcomposer
  [2] composer-proxy
  [3] laravel-china
 >

你也可以直接追加鏡像名稱來跳過選擇

$ composer repo:use phpcomposer

新增選項--current/-c 為目前專案切換來源,預設是修改全域的來源。

所有指令

執行下面指令查看

$ composer repo
/  ___| |  _  \      /   |/   |
| |     | |_| |     / /|   /| |
| |     |  _  /    / / |__/ | |
| |___  | | \ \   / /       | |
\_____| |_|  \_\ /_/        |_|
Composer Repository Manager version 2.0.0
Usage:
  command [options] [arguments]
Options:
  -h, --help            Display this help message
  -q, --quiet           Do not output any message
  -V, --version         Display this application version
      --ansi            Force ANSI output
      --no-ansi         Disable ANSI output
  -n, --no-interaction  Do not ask any interactive question
  -v|vv|vvv, --verbose  Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
Available commands for the "repo" namespace:
  repo:add     Creates a repository
  repo:ls      List all available repositories
  repo:remove  Remove a repository
  repo:use     Change current repository

總結

除了用法上的改變,新版最顯著的可能是速度上的提升;如有問題歡迎回饋,在貼文下留言或到github issues 發文皆可。

希望這個小工具會為大家在工作開發上帶來方便。

附上專案地址:

https://github.com/slince/composer-registr...

以上是重構Composer來源管理工具CRM為Composer插件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除