
In einem API-Projekt haben wir composer.json wie folgt eingestellt:
{
"require-dev": {
"phpunit/phpunit": "4.7.*"
},
"require": {
"monolog/monolog": "1.5.*"
}
}
Und beim ersten Mal composer install
war alles in Ordnung. Phpunit funktionierte, wenn es mit aufgerufen wurde vendor/bin/phpunit
. Mein Arbeitscomputer hat ein Windows 7-Betriebssystem, wir verwenden jedoch Git für dieses Projekt, und wenn ich von einem anderen Computer (Kubuntu 14.04) daran arbeite, git pull
kann ich nach dem Ausführen keine Unit-Tests mehr mit ausführen vendor/bin/phpunit
- es schlägt mit der Fehlermeldung fehl, dass Vendor/Bin/PhpUnit nicht gefunden werden kann.
Auf der Linux-Maschine habe ich die nicht funktionierende ausführbare Datei vendor/bin/phpunit gelöscht, den Ordner vendor/phpunit entfernt und ihn von Composer über ersetzen lassen composer update
. Ab diesem Zeitpunkt kann ich Unit-Tests wieder wie zuvor ausführen. Unter Windows 7 funktioniert dies jedoch nicht so reibungslos. Es ist schwieriger.
composer.json
Meine Frage ist: Mache ich etwas falsch, wenn ich die Dateien über GitHub verfolge und dann auf verschiedenen Betriebssystemen arbeite? Könnte ich diesen Fehler vermeiden, wenn ich nur den Inhalt des Verzeichnisses verfolge und vendor/phpunit/phpunit
ihn nicht verfolge (und die Dateien bei ihrem jeweiligen Betriebssystem belasse)? Danke, Adam.
Antwort1
vendor
Der Zweck von Composer besteht darin, dass Sie nur ein leeres(!) Verzeichnis in Ihrem Repo haben müssen, aber composer.json
(Anforderungen) und composer.lock
(zuletzt getestete bestimmte Versionen) verfolgen und composer install
nach dem Checkout auf einer neuen Entwicklungsmaschine ausführen müssen.
(NB: composer install
Es werden die spezifischen Versionen entsprechend der composer.lock
Datei installiert. composer update
Es wird die neueste Version installiert, die den in der Datei definierten Anforderungen entspricht composer.json
.)
Composer sollte dann die entsprechende Binärdatei für Ihr System herunterladen und in das Verzeichnis legen vendor/bin/
.