Symfony 为什么composer中的依赖项更新如此缓慢?
我正在使用composer()管理Symfony 为什么composer中的依赖项更新如此缓慢?,symfony,dependencies,composer-php,Symfony,Dependencies,Composer Php,我正在使用composer()管理Symfony2(symfonyv2.1.3)中已安装的捆绑包。编写器的版本是de3188c 我的问题是,当我向composer.json中添加新包并执行它时,显示有关更新依赖项和下一次下载它们的消息的时间非常少 我在composer.json(见下文)中有这些数据,执行时间大约为20分钟!!!互联网连接足够快,我可以下载大文件非常快 有什么窍门可以让它更快吗 { "name": "symfony/framework-standard-edition", "de
Symfony2
(symfonyv2.1.3)中已安装的捆绑包。编写器的版本是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"
}
{
“名称”:“symfony/framework标准版”,
“说明”:“Symfony标准版”发行版,
“自动加载”:{
“psr-0”:{”“:“src/”}
},
“要求”:{
“php”:“>=5.3.3”,
“symfony/symfony”:“2.1.*”,
“条令/orm”:“>=2.2.3,尝试在composer.json中为每个依赖项指定一个版本,并在调用composer时使用选项--preference dist
。它将从存储库(如果可用)而不是单个文件下载ZIP文件
php composer.phar install --prefer-dist
既然你接受了一个答案,看起来这就解决了你的问题。不过,以防其他人偶然发现这个问题(就像我搜索时所做的那样),在我的情况下,一个非常缓慢的Composer安装必须与我的PHP版本有关(警告一句,我是一个完全的作曲家新手),尽管Composer进行了标准检查,并表示一切正常。我运行Ubuntu12.04LTS,但太懒了,无法在精确的repo中从默认的PHP5.3.10(与您运行的版本相同)升级
通过Composer安装Twig最初花了我30分钟左右的时间。在花了一个多小时之后,我放弃了安装条令。我升级到5.4.17(使用此PPA),安装条令只需几秒钟即可完成。我发现它也非常慢,只需几十分钟
对我来说,我添加了-vvv
,发现它挂在像这样的东西上
下载https://packagist.org/p/provider-active$53CDF887C8D2925B3501F47D690FB7BDA2310716369BF7A84857C6E62BBA0F.json
然后,我转到浏览器并尝试下载JSON文件,果然。是packagist.org导致了速度缓慢。在我的情况下,上述建议没有任何影响。我所做的是使用HTTPS
协议来packagist
:
php composer.phar config --global repo.packagist composer https://packagist.org
或
根据您的设置,我使用带有-vvv属性的require命令来诊断此使用
composer require larapack/dd -vvv
在我的例子中,我发现composer速度慢是因为fxp/composer资产插件
composer global show
composer global remove fxp/composer-asset-plugin
瞧,你能做的就是指定所需的标签(而不是2.1.*使用2.1.1 f.e.)2014年12月初,发现了一个优化,即在Composer运行期间停止尝试垃圾收集内存。由于Composer内部正在执行的一些非常具体的操作,它花费了很长时间,但最终效果很小。在修补程序之后,许多人报告Composer将占用更多内存,但运行时间会减少一半,甚至更少。a还可以尝试更新composer。它显著提高了我的非常简单的项目的加载时间,该项目有很多可传递的依赖性(使用phpunit)它还保留了一份静坐~/.composer的副本,以便其他项目或更新等将首先到达那里。这似乎正是我的问题。当我刚刚在没有锁文件的情况下运行composer安装时,花了大约30分钟。当我使用锁文件时,它在几秒钟内完成。+1不管PHP升级是否为选项,因为接受了answer对我也不起作用。在PHP5.5.9中工作得更快。我也听说有人在HHVM上使用composer获得了惊人的结果。禁用xdebug似乎也有帮助。这是我缓慢的根本原因。这似乎对我起作用(不完全如此,但至少少了一件事)这对我来说非常有效。我个人认为这是最好的答案。对我来说非常有效。我已经尝试了很多解决方案(比如禁用xdebug、激活缓存、添加--preferdist)所有这些都不起作用,我偶然得到了这个答案,而这是唯一真正解决问题的解决方案。应该被标记为我的案例的最佳答案。
composer global show
composer global remove fxp/composer-asset-plugin