新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍怎样重构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源管理工具CRM为composer插件”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!