美文网首页
重构Composer源管理工具CRM为Composer插件

重构Composer源管理工具CRM为Composer插件

作者: 爱喝马黛茶的安东尼 | 来源:发表于2019-08-29 17:09 被阅读0次

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:usephpcomposer

添加选项 --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 fornormal output, 2 formore verbose output and3 fordebug

Available commands forthe "repo"namespace:

  repo:add     Creates a repository

  repo:ls      List all available repositories

  repo:remove  Remove a repository

  repo:useChange current repository

总结

除了用法上的改变,新版最显著的可能是速度上的提升;如有问题欢迎反馈,在帖子下留言或者到 github issues 发帖均可。

希望这个小工具会给大家在工作开发中带来方便。

附上项目地址: https://github.com/slince/composer-registr...

本文转自:https://www.php.cn/tool/composer/429465.html

相关文章

  • 重构Composer源管理工具CRM为Composer插件

    CRM是我很久之前为管理 composer 源做的一款命令行工具,旨在通过简单的命令在多个中国镜像切换,从而方便的...

  • composer相关

    composer 查看命令 composer dump-autoload 重新加载插件。composer cl...

  • composer.lock和composer.json

    composer是PHP用来管理项目依赖的管理工具。 在使用composer安装更新项目时,composer in...

  • PHP资源列表

    Composer Repositories Composer源 Firegento - Magento模块Comp...

  • composer

    Composer 是 PHP 的一个依赖管理工具。 简介 依赖管理 Composer 将这样为你解决问题: 你有一...

  • Mac下安装Laravel

    安装Composer Composer是php包管理工具,可以类比node.js的包管理工具npm,Laravel...

  • 安装Laravel IDE Helper代码提示

    1.使用composer安装插件 composer require barryvdh/laravel-ide-h...

  • 搭建服务器

    服务器搭建手册 Nginx 安装 php 安装 MySQL安装 安装composer管理工具 composer 切...

  • 安装 Laravel 之前

    安装 Laravel 之前的步骤 安装composer composer 是php的包管理工具,简单说 就是我们可...

  • 安装laravel

    安装composer 给composer换国内的源 安装Laravel installer Make sure t...

网友评论

      本文标题:重构Composer源管理工具CRM为Composer插件

      本文链接:https://www.haomeiwen.com/subject/oexwectx.html