1

В проекте API для composer.json задано следующее:

{
    "require-dev": {
        "phpunit/phpunit": "4.7.*"
    },
     "require": {
        "monolog/monolog": "1.5.*"
    }
}

И после первой composer install все было в порядке. Phpunit работал, когда вызывался с vendor/bin/phpunit . Моя рабочая машина - ОС Windows 7, однако мы используем git с этим проектом, и когда я работаю на этом с другой машины (Kubuntu 14.04), после выполнения git pull я больше не могу запускать модульные тесты с vendor/bin/phpunit - это терпит неудачу с ошибкой, что это не может найти vendor/bin/phpunit.

На компьютере с Linux я удалил неработающий исполняемый файл vendor/bin/phpunit и удалил папку vendor/phpunit, а композитор заменил его через composer update . В этот момент я могу снова запустить модульные тесты, как и раньше. Однако это не так хорошо работает в Windows 7. Это сложнее.

Мой вопрос: я делаю что-то не так, отслеживая файлы через github, а затем работаю в разных операционных системах? Могу ли я избежать этой ошибки, если бы я только отслеживал composer.json и оставил содержимое каталога vendor/phpunit/phpunit неизменном состоянии (и позволил бы файлам оставаться в их конкретной ОС)? Спасибо, Адам.

1 ответ1

0

Цель Composer в том, что вам просто нужно иметь пустой (!) Каталог vendor в вашем репозитории, но отслеживайте composer.json (требования) и composer.lock (последние протестированные конкретные версии) и запускайте composer install после проверки на новой машине для разработки.

(NB. composer install установит конкретные версии в соответствии с файлом composer.lock composer update установит любые последнюю версию соответствует требованиям , определенным в composer.json

Затем Composer должен загрузить соответствующий двоичный файл для вашей системы и поместить его в каталог vendor/bin/ .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .