为什么更新composer php的依赖关系是如此之慢?

我正在使用composer php( http://getcomposer.org/ )来pipe理Symfony2 (symfony v 2.1.3)中已安装的软件包。 composer php的版本是de3188c

我有问题,当我添加新的包到composer.json并执行它的时间来显示有关更新依赖关系,然后下载它们都是非常低的消息。

我有这个数据在composer.json(见下文)和执行时间约20分钟! 互联网连接速度足够快,我可以非常快速地下载大文件…

有什么诀窍让它更快?

 { "name": "symfony/framework-standard-edition", "description": "The \"Symfony Standard Edition\" distribution", "autoload": { "psr-0": { "": "src/" } }, "require": { "php": ">=5.3.3", "symfony/symfony": "2.1.*", "doctrine/orm": ">=2.2.3,<2.4-dev", "doctrine/doctrine-bundle": "1.0.*", "twig/extensions": "1.0.*", "symfony/assetic-bundle": "2.1.*", "symfony/swiftmailer-bundle": "2.1.*", "symfony/monolog-bundle": "2.1.*", "sensio/distribution-bundle": "2.1.*", "sensio/framework-extra-bundle": "2.1.*", "sensio/generator-bundle": "2.1.*", "jms/security-extra-bundle": "1.2.*", "jms/di-extra-bundle": "1.1.*", "doctrine/doctrine-fixtures-bundle": "dev-master", "webignition/doctrine-migrations-bundle": "dev-master" }, "scripts": { "post-install-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ], "post-update-cmd": [ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets", "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile" ] }, "minimum-stability": "dev", "extra": { "symfony-app-dir": "app", "symfony-web-dir": "web" } 

尝试为composer.json中的每个依赖项指定版本,并在调用composer时使用选项--prefer-dist 。 它将从存储库(如果有的话)下载ZIP文件而不是单个文件。

 php composer.phar install --prefer-dist 

既然你接受了答案,看起来就解决了你的问题。 以防其他人绊倒这个问题,虽然(就像我在search时那样),在我的情况下,一个非常缓慢的composer php安装必须与我的PHP版本(警告的话,我是一个完整的和composer php新手) ,即使composer php通过标准检查,并说一切都很好。 我运行的是Ubuntu 12.04 LTS,并且懒得从Precise repo中的默认PHP 5.3.10(与你运行的版本相同)升级。

通过Composer安装Twig最初花了我大约30分钟。 花了一个多小时后,我放弃了安装教义。 我升级到5.4.17(使用这个PPA https://launchpad.net/~ondrej/+archive/php5 ),安装原则是在几秒钟内完成的。

我发现它也很慢,在几十分钟慢。

对我来说,我添加了-vvv ,发现它是挂在像Downloading https://packagist.org/p/provider-active$53cdf887c8d2925b3501f47d6980fb7bda2310716369bf7a84857c6e62bbab0f.json

然后我去了浏览器,并试图下载该JSON文件,果然。 这是packagist.org成为缓慢的原因。

就我而言,上述build议没有什么不同。 什么是使用HTTPS协议的packagist

 php composer.phar config --global repo.packagist composer https://packagist.org 

要么

 composer config --global repo.packagist composer https://packagist.org 

取决于你的设置