Я использую композитор (http://getcomposer.org/) для управления установленными пакетами в Symfony2
(symfony v 2.1.3). Версия композитора de3188c
.
У меня проблема с тем, что когда я добавляю новый набор в композитор .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 и используйте опцию --prefer-dist
при вызове композитора. Он будет загружать ZIP файлы из репозиториев (если они доступны) вместо отдельных файлов.
php composer.phar install --prefer-dist
Поскольку вы приняли ответ, похоже, что это решило вашу проблему. На всякий случай кто-то еще сталкивается с этим вопросом (например, когда я искал), в моем случае очень медленная установка Composer была связана с моей версией PHP (слово предупреждения, я полный и полный новичок Composer), хотя композитор прошел стандартные проверки и сказал, что все в порядке. Я запускаю Ubuntu 12.04 LTS и был слишком ленив, чтобы обновить с PHP 5.3.10 по умолчанию (ту же версию, в которой вы работаете) в Precise repo.
Установка Twig через Composer изначально заняла у меня около 30 минут. Я отказался от установки Доктрины после того, как потребовалось больше часа. Я обновил до 5.4.17 (используя этот PPA https://launchpad.net/~ondrej/+archive/php5), и установка Doctrine была выполнена в считанные секунды.
Я обнаружил, что он также очень медленный, в десятки минут медленный.
Для меня я добавил -vvv
и обнаружил, что он висит на вещи вроде
Downloading https://packagist.org/p/provider-active$53cdf887c8d2925b3501f47d6980fb7bda2310716369bf7a84857c6e62bbab0f.json
Затем я пошел в браузер и попытался загрузить этот JSON файл и, конечно же, достаточно. Это был packagist.org, который стал причиной медленности.
В моем случае вышеупомянутые предложения не повлияли. Что нужно было использовать для протокола HTTPS
для packagist
:
php composer.phar config --global repo.packagist composer https://packagist.org
или
composer config --global repo.packagist composer https://packagist.org
в зависимости от вашей настройки