Ich versuche derzeit, eine bessere lokale Entwicklung einzurichten, ohne Informationen über meine lokale Struktur in ein Projekt selbst oder in die composer.json
dieses Projekts zu stellen.Lokales "Pfad" -Repository sieht keine VCS-Versionsinformationen
Ich fand heraus, dass es eine neue Möglichkeit gibt, dies zu tun, indem Sie config.json
verwenden und einen "repositories"
Abschnitt hinzufügen, der auf meine lokalen Projekte verweist, auf die ich angewiesen bin.
Mein Setup
Also ich Setup zwei Projekte mit einigen Versionen (auf Win10 mit IIS 10 mit PHP 7.0), läßt sie php-project1
und php-project2
nennen. php-project1
hängt von php-project2
ab und ich möchte beide zur gleichen Zeit entwickeln. Änderungen, die ich in php-project2
mache, sollten daher das erste Projekt direkt beeinflussen. Außerdem sind sie Git-Repositories und sie enthalten Tags als Composer-Versionen. Sie sind auch auf Packagist, aber natürlich möchte ich die lokale Version für die Entwicklung verwenden.
Ihre composer.json
sieht wie folgt aus (2 Dateien):
{
"name": "test/php-project1",
"description": "Some text here",
"type": "library",
"require": {
"test/php-project2": "^0.3",
}
}
{
"name": "test/php-project2",
"description": "Some other text here",
"type": "library"
}
Bitte beachten Sie, dass es keinen "version"
Eintrag vorhanden ist, weil ich das von den git-Tags verwenden möchten.
Jetzt habe ich versucht, ein globales config.json
wie diese Einrichtung: die spätere Verwendung für alle meine Repositories/Projekte mit diesem Muster
{
"repositories": [
{
"type": "path",
"url": "/somePath/php-*"
}
]
}
Ich verwende php-*
hier, weil ich es will.
Also, was ist das Problem jetzt?
Wenn composer update
auf dem ersten Projekt ausgeführt wird, verwendet es nicht die lokale Version von php-project2
, sondern lädt es stattdessen von Packagist herunter. Das funktioniert nur, wenn ich einen "version"
Eintrag zu der composer.json
hinzufüge, aber das will ich nicht!
Ich habe auch versucht "type": "vcs"
, aber das schafft einen Klon und ich brauche einen Symlink, um Änderungen direkt in anderen Projekten zu haben.
The documentation sagt:
Wenn das Paket eine lokale VCS-Repository ist, kann die Version von dem Zweig oder einer Marke zu entnehmen, dass zur Zeit geprüft. Andernfalls sollte die Version explizit in der Datei composer.json des Pakets definiert werden.
Derzeit php-project2
ist auf Tag 0.3.0
ohne Änderungen.
Was mache ich falsch?