2017-01-05 3 views
1

Probieren Sie Composers provide Feature verwenden, fügte ich einen provide Abschnitt zu meinem Implementierungsrepository ffa-php-mock, in dem ich sage, es bietet shadiakiki1986/ffa-php-implementation. In meinem Repository mit dieser Implementierung, ffa-php-cli, ersetzte ich die Composer erfordern entry erfordert ffa-php-mock mit einer entry erfordern ffa-php-implementation. Wenn ich versuche, einen composer update zu laufen, bekomme ich folgendeComposer bereitstellen/erfordern keine Implementierung finden

> composer update 
Loading composer repositories with package information 
Updating dependencies (including require-dev) 
Your requirements could not be resolved to an installable set of packages. 

    Problem 1 
    - The requested package shadiakiki1986/ffa-php-implementation could not be found in any version, there may be a typo in the package name. 

Potential causes: 
- A typo in the package name 
- The package is not available in a stable-enough version according to your minimum-stability setting 
    see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details. 

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems. 

Können Sie mir irgendwelche Hinweise, wie zu debuggen, was das Problem ist?

Edit: vereinfachtes Beispiel

Ich versuchte, die provide Funktion in einem Dummy-Projekt auf etwas, das bereits existiert. jackalope/jackalope liefert phpcr/phpcr-implementation, was seinerseits bereits von DoctrinePHPCRBundle benötigt wird.

Wenn ich ein neues leeres Projekt mit composer init starte und spezifiziere, dass mein Projekt von phpcr/phpcr-implementation abhängt, bekomme ich den gleichen Fehler wie oben. Ich habe auch versucht, phpcr/phpcr-implementation direkt in der Datei composer.json setzen und eine composer update ausführen, aber ohne Erfolg.

> cat composer.json 
{ 

    "require": { 
     "phpcr/phpcr-implementation": "2.1.0" 
     } 
} 

Ich würde denken, dass dies vielleicht ein Fehler in Komponisten, aber es scheint von this issue, dass es bereits in Gebrauch ist.

> composer --version 
Composer version 1.3.0 2016-12-24 00:47:03 

Die nächste Komponist Github Frage, die ich finden kann, ist #2811, aber dass man sagt, dass die Berichterstattung nicht klar ist, nicht, dass provide nicht

funktioniert

Antwort

1

So landete ich das Lernen auf, dass das spezifische Paket mit der Implementierung sollte immer noch in der composer.json Datei enthalten sein. Für Pakete, die die Bibliothek verwenden, ist das in Ordnung, wenn sie zum Abschnitt require hinzugefügt werden. Für die Bibliothek, die direkt die Implementierung erfordert, sollte das in require-dev getan werden, damit die Komponententests funktionieren und damit andere Projekte, die die Bibliothek verwenden, nicht dieselbe Implementierung

verwenden müssen
Verwandte Themen