7

Ich möchte den Benutzern meines Composer-Pakets eine Schnittstelle zur Auswahl und Installation eines der vorgeschlagenen-Pakete anbieten. Es scheint keine Befehlszeilenoption zu geben, und in der API kann ich nur eine getSuggests() Methode finden, die die vorgeschlagenen Pakete auflistet.Gibt es eine Möglichkeit, vorgeschlagene Composer-Pakete interaktiv zu installieren?

Gibt es eine Möglichkeit (nativ oder mit einem Installationsprogramm von Drittanbietern), um dem Benutzer die Wahl zu geben, vorgeschlagene Pakete auszuwählen?

Antwort

4

Soweit ich weiß, gibt es keine Möglichkeit, dies mit der üblichen Composer-Funktionalität zu erreichen.

Sie können Ihre eigenen Skripte schreiben, die unter post-package-install ausgeführt werden. Skripte werden jedoch nur ausgeführt, wenn sie im Root-Paket composer.json definiert sind (weitere Informationen zur Verwendung von Skripten see here). Skripte, die in Abhängigkeiten definiert sind, werden aus Sicherheitsgründen nicht ausgeführt (dazu gab es vor einiger Zeit a discussion on the github).

Aber vielleicht passt ein Composer-Plugin Ihren Bedürfnissen. Plugins werden verwendet, um die Funktionalität von Komponisten zu erweitern (mehr Informationen über Plugins see here).

Als eine einfache Alternative schlage ich vor, eine vorgeschlagene Paket Nachricht wie zu definieren: If you need XY functionality run: php composer.phar require vendor/package:2.* Und der Benutzer kann dann diesen Befehl verwenden, um es zu installieren. Nicht so komfortabel wie gewünscht, aber immer noch einfach genug für die meisten Benutzer, denke ich.

5

Versuchen

composer suggests 

das Flag -v hinzufügen es ausführliche zu machen.

Dies wird nichts installieren, es wird nur alle Vorschläge auflisten. Sie können es jedoch an composer erfordern und die gewünschte Ausgabe erhalten. Sollte funktionieren von Fenstern git bash

12
composer suggests | xargs -i composer require {} 
+0

Ich nehme an, das ist nur für Linux und ein kurzer Test hat bewiesen, dass es nicht auf Windows funktioniert. Windows kennt keine xargs – davejal

+0

Unix, nicht nur Linux. – TheodorosPloumis

+0

In meinem Fall habe ich globale Pakete installiert, also habe ich folgendes verwendet: '' 'composer global suggest | xargs -I '{}' Composer global require '{}' '' ' – robrecord

3

Dieser hat es für mich :)

composer suggests | xargs -I '{}' composer require '{}' 

Hoffnung wird es :)

2
composer suggests | xargs -L 1 composer require 

helfen.

Verwandte Themen