2016-06-12 10 views
0

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?

Antwort

0

Habe meinen Fehler mit Hilfe von alcohol gefunden (das klingt aber falsch ^^).

Wenn Sie dies verwenden und einen Symlink benötigen, stellen Sie sicher, dass Sie einen "version" Eintrag zu Ihrer composer.json hinzufügen oder (in meinem Fall) den Tag checken (nicht die Verzweigung!), Damit der Composer sieht, dass Ihre verwendete Version mit der übereinstimmt erforderlich.

Verwandte Themen