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

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

藏色散人
藏色散人轉載
2020-02-26 15:03:272102瀏覽

如何重構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

總結

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

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

更多程式相關內容,請關注php中文網程式入門欄位!

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

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