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

下面由composer使用教程栏目为大家讲解如何重构composer源管理工具crm为composer插件,希望对需要的朋友有所帮助!

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

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

那个时候我对 composer 插件了解不是特别多,所以做法比较也粗暴,底层通过执行 composer 命令来达到切换源的目的,在 linux 上用起来还好几乎没有特别的感知,但 win 上就会有些迟钝了。这也是显而易见的毕竟切换的时候相当于同时执行了多个命令;后来由于工作的机会了解了一下 composer 插件的开发,所以也就萌生了重构的念头;

与 1.x 版本相比,2.x 主要有下面一些改变:

元数据存储位置改变

在 1.x 版本中是在用户的 Home 文件夹下自定义的一个文件,用户所有的操作都最终持久化到这个 json 文件里去;新版则将元数据存储到了 composer 全局路径下的 config.json 里:

  1. {    "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 入口;

新版用法

列出所有可使用的镜像

  1. $ 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

登录后复制

标 “*” 表示当前正在使用的源;

切换镜像

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

登录后复制

你也可以直接追加镜像名称来跳过选择

  1. $ composer repo:use phpcomposer

登录后复制

添加选项 –current/-c 为当前项目切换源,默认是修改全局的源。

所有命令

执行下面命令查看

  1. $ composer repo/  ___| |  _        /   |/   || |     | |_| |     / /|   /| || |     |  _  /    / / |__/ | || |___  | |     / /       | |_____| |_|  _ /_/        |_|Composer Repository Manager version 2.0.0Usage:  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 debugAvailable 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 发帖均可。

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

附上项目地址: composer使用教程

以上就是重构Composer源管理工具CRM为Composer插件的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    SublimeText3配置react语法校验

    2025-3-13 15:09:02

    编程技术

    Apache服务配置详细讲解

    2025-3-13 15:09:18

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索