2013-05-06 5 views
0

Я создаю автоматический скрипт, который устанавливает последнюю версию Symfony 2.2, добавляет пакеты CMS нашей компании в composer.json, создает пару новых пакетов и так далее.Сделать неудачный загрузчик композитора

Автоматизация работает иначе, но иногда некоторые из поставщиков загружаются с GitHub случайным образом из-за тайм-аутов. Когда я снова запускаю php composer.phar install, загрузка обычно выполняется успешно, и процесс установки снова завершается несколькими зависимостями позже. После 10 исполнений все, наконец, установлено.

Это вызывает большие проблемы для установщика, поскольку в настоящее время он завершает работу и очищает все, что было установлено, в случае сбоев утверждений. Есть ли способ, которым я могу либо продолжать команду установки компоновщика, пока не уверен, что все установлено, или попросите композитора повторить загрузку, если они не сработают?

+0

Вы используете ['--prefer-dist'] (http://getcomposer.org/doc/03-cli.md#install)? – iamdto

+0

iamdto: Да. Я также пробовал без него, но это, похоже, не сильно повлияло. – Kaivosukeltaja

ответ

1

Composer теперь имеет встроенную функцию, чтобы повторить попытку загрузки, см:

https://github.com/composer/composer/commit/5267bafa2cb28e564dbca8d1bfaa64de2a120827

+0

Спасибо, это хорошая новость! Я просто надеюсь, что '$ notFoundRetries' можно указать как параметр, но на основе моего собственного опыта 3 должно быть достаточно. – Kaivosukeltaja

0

Вы также можете проверить exit codes композитора и повторить его, если он не работает.

1

Я прошел мимо этого, используя локальный репозиторий для больших пакетов (как правило, сгенерированный код и изображения). Просто скачайте молнию в Symfony и редактировать composer.json добавить локальный репозиторий точку

"require": { 
    "symfony/symfony": "2.2.1" 
}, 
"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name" : "symfony/symfony", 
      "version" : "2.2.1", 
      "dist": { 
       "url": "/Users/cassell/Symfony_Standard_Vendors_2.2.1.zip", 
       "type": "zip" 
      } 
     } 
    } 
]