2014-07-30 2 views
2

Я нахожусь в центре создания новой системы для непрерывной интеграции и доставки.Использование инструментов построения PHP с помощью установки композитора приводит ко многим зависимостям

Поскольку PEAR почти для EOL для большинства пакетов (например, phpunit), я переключился на композитора, что кажется хорошей идеей, поскольку мне это нужно для проектов.

так, чтобы проверить сервер моей интеграции, я начал с очень простым composer.json:

{ 
    "require-dev": { 
     "phpunit/phpunit": "4.1.*", 
     "phpmd/phpmd" : "2.0.*", 
     "pdepend/pdepend" : "2.0.0", 
     "zerkalica/php-code-browser": "dev-master", 
     "squizlabs/php_codesniffer": "1.*", 
     "sebastian/phpcpd": "*", 
     "phpdocumentor/phpdocumentor": "dev-master" 
    } 
} 

это приводит к 230MB каталогу поставщика.

для полного списка пакетов, которые установлены см: https://gist.github.com/rufinus/14b271f61e143364452f

ли это ожидаемый результат?

Должен ли я переключиться на файлы PHAR и сохранить их в каталоге bin внутри проекта?

Какая практика? (без груши)

+0

Почему git жалуется на сумму, которую вы потянули? неужели вы не совершаете свою папку поставщика? вы бы поставили vendor/* внутри вашего .gitignore, а затем разворачивали свой код на свой сервер и т. д. вы бы сделали обновление для композитора. –

+0

'Не удалось получить https://api.github.com/ [...], введите свой GitHub учетные данные, чтобы перейти по пределу скорости API »см. https://circleci.com/docs/composer-api-rate-limit для получения дополнительной информации. – Rufinus

+0

Вы используете ключи ssh? вы вкладываете в вас github creds? –

ответ

1

Вы можете настроить композитор для загрузки каждого пакета вместо его клонирования. Это должно сэкономить вам некоторое пространство и время.

{ 
    "require-dev": { 
     "phpunit/phpunit": "4.1.*", 
     "phpmd/phpmd" : "2.0.*", 
     "pdepend/pdepend" : "2.0.0", 
     "zerkalica/php-code-browser": "dev-master", 
     "squizlabs/php_codesniffer": "1.*", 
     "sebastian/phpcpd": "*", 
     "phpdocumentor/phpdocumentor": "dev-master" 
    }, 
    "config": { 
     "preferred-install": "dist" 
    } 
} 

Чтобы проверить, удалить vendor, composer.lock и запустить composer install снова. Теперь он должен загружать каждый пакет, а не клонировать его.

В качестве примечания стороны. Попробуйте использовать определенную версию вместо «*» или «dev-master». phpcpd, например, я точно знаю, что это часто помечено.