composer install 很慢?怎么让composer加速

1. 什么是composer?

在探究如何优化composer之前,我们需要先了解composer。作为PHP的依赖管理工具,composer允许我们在项目中引入其他PHP依赖的代码库,例如Laravel框架。运行composer install 命令时,它会检查composer.json文件并下载必要的依赖项。composer大大简化了PHP开发过程,并且在开发PHP项目时广受欢迎。

2. composer安装缓慢的原因

2.1 镜像源不佳

composer默认从packagist.org下载依赖项,但在某些情况下却经常下载失败或速度缓慢。这可能是由于您的位置与packagist服务器之间的网络延迟或距离较远导致的。解决方法是安装更好的镜像源,并将其用作composer install指定的下载源。以下是一些可以替代packagist.org的镜像源:

"repositories": [

{

"type": "composer",

"url": "https://mirrors.aliyun.com/composer/"

}

]

使用镜像源时需要注意的是,若在安装过程中发现从镜像源获取依赖文件速度缓慢,还可以使用composer命令来切换至其他可用的镜像源。

2.2 依赖文件太多

安装过程中下载的依赖文件太多也会导致安装缓慢。这个问题的解决办法是缩小composer.json文件中依赖的范围。例如,尝试安装Laravel框架的所有组件可能导致下载数千个依赖项并且耗费大量时间。为避免此类情况,您可以使用composer.json中的require-dev部分,只下载您的开发环境所需的全部组件。这可以通过独立使用composer update命令来实现,它会跳过安装所依赖的dev组件。

2.3 缓存问题

composer使用缓存以优化下载速度,但是由于网络或运营商限制,缓存可能会失效或被损坏,从而导致安装效率低下。避免此类问题的方法是清除composer缓存,并重新运行composer install指令。命令如下:

composer clear-cache

3. 如何优化composer的安装速度

3.1 安装composer的版本

第一步是确认使用的composer版本。较新的composer版本通常可以提高安装速度,因为其在下载与更新依赖文件方面执行得更快。使用以下命令安装最新版本的composer:

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

3.2 更改配置项

您可以通过更改composer的配置来控制其下载依赖文件的速度, 下面列出一些不同的配置选项,让您更好地控制composer的行为。

配置并行下载

"config": {

"parallel-fetch": true

}

限制依赖版本的数量

通过限制安装的依赖版本数量来提高composer的性能。例如,该方法允许您同时下载不超过10个依赖版本,而不是同时下载许多不同版本的依赖文件。以下是命令:

"config": {

"preferred-install": {

"*": "dist"

},

"sort-packages": true,

"optimize-autoloader": true,

"classmap-authoritative": true

},

"archive": {

"exclude": ["vendor"]

},

"require": {

"php": "^7.2.5"

},

"require-dev": {

"barryvdh/laravel-ide-helper": "^2.5",

"fzaninotto/faker": "^1.4",

"mockery/mockery": "^1.3.1",

"nunomaduro/collision": "^4.4",

"phpunit/phpunit": "^8.5"

},

"config": {

"process-timeout": 300,

"sort-packages": true,

"check-platform-reqs": true,

"fxp-asset": {

"enabled": true

},

"github-protocols": [

"https"

],

"notify-on-install": true,

"secure-http": false,

"vendor-dir": "vendor"

},

"prefer-stable": true,

"minimum-stability": "dev",

"prefer-lowest": true

3.3 选用更快的服务器

除了使用镜像源外,您还可以使用更快的服务器来加速composer。这可以通过更改composer的repositories属性来实现。例如,使用Amazon S3时,您可以像这样设置repositories选项:

"repositories": [

{

"type": "package",

"package": {

"name": "amazon/s3",

"version": "2.2.0",

"dist": {

"type": "zip",

"url": "https://github.com/aws/aws-sdk-php/archive/2.2.0.zip"

},

"autoload": {

"classmap": ["src/"]

}

}

}

]

总结:

在使用composer时,添加优化应该是一个高优先级的任务。解决缓慢下载的问题需要在探查问题的根源、选择合适的镜像源、优化设置选项,并使用更快的服务器的方面做出努力。使用这些方法,您应可以大大缩短composer安装时间并提高安装速度。