7

Chciałbym zaoferować użytkownikom mojego pakietu kompozytora interfejs do wybierania i instalowania dowolnych pakietów sugerowanych. Wydaje się, że nie ma opcji wiersza poleceń, aw interfejsie API można znaleźć tylko metodę getSuggests(), która zawiera listę sugerowanych pakietów.Czy istnieje sposób interaktywnej instalacji sugerowanych pakietów kompozytorskich?

Czy istnieje sposób (natywny lub z instalatorem innej firmy), aby dać użytkownikowi możliwość wyboru sugerowanych pakietów?

Odpowiedz

4

Z tego, co wiem, nie ma sposobu, aby to osiągnąć dzięki wspólnej funkcji kompozytora.

Możesz napisać własne skrypty do wykonania pod numerem post-package-install. Ale skrypty są wykonywane tylko wtedy, gdy są zdefiniowane w pakiecie root composer.json (więcej informacji na temat korzystania ze skryptów see here). Skrypty zdefiniowane w zależnościach nie są wykonywane ze względów bezpieczeństwa (o tym kiedyś było a discussion on the github).

Ale może kompozytor-wtyczka pasuje do twoich potrzeb. Wtyczki służą do rozszerzania funkcjonalności kompozytorów (więcej informacji o wtyczkach see here).

Jako prosty alternatywny sposób sugeruję zdefiniowanie sugerowanej wiadomości pakietowej, takiej jak: If you need XY functionality run: php composer.phar require vendor/package:2.* Następnie użytkownik może użyć tego polecenia, aby zainstalować. Nie tak wygodna, jak ci się wydawało, ale wciąż wystarczająco łatwa dla większości użytkowników.

5

Spróbuj

composer suggests 

dodać flagę -v, aby go gadatliwy.

Nie zainstaluje niczego, wyświetli tylko wszystkie sugestie. Można jednak potokować go do wymagającego kompozytora i uzyskać żądaną wydajność.

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

Zakładam, że jest to tylko dla systemu Linux, a szybki test udowodnił, że nie działa w systemie Windows. Windows nie zna xargs – davejal

+0

Unix, nie tylko Linux. – TheodorosPloumis

+0

W moim przypadku instalowałem pakiety globalne, więc użyłem: '' 'composer global suggests | xargs -I '{}' composer global wymaga '{}' '' ' – robrecord

3

Ten zrobił to dla mnie :)

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

nadzieję, że pomoże :)

2
composer suggests | xargs -L 1 composer require 

Powinna działać z okna git bash.

Powiązane problemy