Использование инструментов сборки 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"
    }
}

это ведет к Каталогу поставщиков размером 230 МБ.

полный список установленных пакетов см. по адресу: https://gist.github.com/rufinus/14b271f61e143364452f< /а>

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

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

Какова наилучшая практика? (без груши)


person Rufinus    schedule 30.07.2014    source источник
comment
Зачем git жаловаться на сумму, которую вы вытащили? конечно, вы не фиксируете свою папку поставщика? вы поместите vendor/* в свой .gitignore, а затем развернете свой код на своем сервере и т. д., вы сделаете обновление композитора   -  person Oliver Bayes-Shelton    schedule 30.07.2014
comment
Could not fetch https://api.github.com/[...], enter your GitHub credentials to go over the API rate limit см. circleci.com/docs/composer-api-rate-limit. Детали.   -  person Rufinus    schedule 30.07.2014
comment
Вы используете ключи ssh? вы вставляете свои кредиты github?   -  person Oliver Bayes-Shelton    schedule 30.07.2014
comment
ограничение скорости github не проблема, это было просто забавным примечанием.   -  person Rufinus    schedule 30.07.2014
comment
Так у вас все еще есть проблема?   -  person Oliver Bayes-Shelton    schedule 30.07.2014
comment
мне трудно поверить, что мне нужно использовать 230 МБ библиотек поставщиков только для того, чтобы иметь набор инструментов сборки с композитором, когда пакеты phar или pear занимают намного меньше места.   -  person Rufinus    schedule 30.07.2014
comment
редактировать для лучшего понимания того, что я прошу   -  person Rufinus    schedule 30.07.2014
comment
это выглядит правильно, моя папка поставщика 173M ./vendor   -  person Oliver Bayes-Shelton    schedule 30.07.2014


Ответы (1)


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

{
    "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, например, я точно знаю, что часто тегируется.

person Alexandru Guzinschi    schedule 30.07.2014