什么是composer?
Composer 是 PHP5.3以上 的一个依赖管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 "packages" 和 "libraries",但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。现在越来越多的PHP应用使用composer来管理包,比如Symfony、Laravel、ThinkPHP、Joomla、phpBB等。
Drupal从drupal8开始基于Symfony等众多第三方组件构建,为了保证drupal版本和各组件版本的一致性,官方提倡使用composer来安装和更新drupal,包括drupal核心、主题和模块。到drupal10官方进一步呼吁使用composer来管理依赖项,甚至部分模块如commerce必须用composer来安装。
关于composer的下载和安装参照:https://pkg.xyz/#how-to-install-composer ,composer的使用可参阅composer中文文档,地址:https://docs.phpcomposer.com/
composer管理项目依赖项虽然很方便,但由于某些原因,国内使用composer并不顺畅,经常连接不上composer官方服务器,所以收集了几个国内可用镜像源,以备使用。本列表会不定期更新,如果有更好的国内composer镜像源可告诉我更新。
镜像名 | 地址 | 更新频率 | 备注 |
阿里云Composer镜像 | https://mirrors.aliyun.com/composer/ | 96 秒 | 全量 |
腾讯云Composer镜像 | https://mirrors.cloud.tencent.com/composer/ | 24小时 | 全量 |
华为云 Composer 镜像 | https://repo.huaweicloud.com/repository/php/ | 未知 | 全量 |
PHP 国内 Composer 镜像 | https://packagist.phpcomposer.com | 60秒 | 全量 |
交通大学Composer镜像 | https://packagist.mirrors.sjtug.sjtu.edu.cn | 未知 | 未知 |
配置镜像
全局配置镜像(推荐)
所有项目都会使用该镜像地址,以下为阿里云composer镜像配置命令,其他镜像配置将命令中的地址更换即可。
composer config -g repos.packagist composer https://mirrors.aliyun.com/composer/
取消配置
composer config -g --unset repos.packagist
项目配置
仅修改当前工程配置,仅当前工程可使用该镜像地址:
composer config repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置
composer config --unset repos.packagist
调试
composer 命令增加 -vvv 可输出详细的信息,命令如下:
composer -vvv require alibabacloud/sdk
Composer使用遇到问题时,可按照以下步骤尝试解决。
1.将Composer版本更新到最新版本,执行命令:
composer self-update
升级后回滚版本,执行命令:
composer self-update --rollback
2.执行composer诊断命令:
composer diagnose
3.清除缓存:
composer clear
4.如果项目之前已经通过其他源安装,则执行以下命令更新composer.lock文件:
composer update --lock
其他命令
查看composer版本:
composer -V
查看composer配置:
composer config -l -g
提示:如果切换为国内某个Composer镜像源还是连接不了服务器,可以切换为国内其他的镜像源,多尝试几次一般可以成功。