Próbuję zainstalować Coinbase PHP API, ale wymaga to Composera:
https://github.com/coinbase/coinbase-php
Szukam uniwersalnego rozwiązania PHP (być może funkcji), które pozwoliłoby mi zainstalować pakiety kompozytora bezpośrednio na moim serwerze, bez konieczności używania Composera.
Myślę, że programiści Composera uważają, że pomagają ludziom, ale w rzeczywistości są tysiące początkujących programistów, którzy nie mogą uczyć się tworzenia stron internetowych z powodu „bariery Composera”.
Naprawdę pomogłoby, gdyby istniało elastyczne rozwiązanie lub podejście, w którym moglibyśmy zainstalować bez Composera? Jak mogę to zrobić?
Proszę nie odpowiadać sarkastycznym komentarzem . Są ludzie, którzy nie chcą używać Composera i nie widzę powodu, dla którego powinniśmy być wciągnięci do konkretnego oprogramowania innej firmy w celu tworzenia stron internetowych.
źródło
include
pliki.Odpowiedzi:
composer.json
Plik zawiera listę zależności. W twoim przykładzie:"require": { "php": ">=5.5.0", "guzzlehttp/guzzle": "^6.0", "psr/http-message": "^1.0", "psr/log": "^1.0" },
Następnie musisz znaleźć odpowiednie pakiety w witrynie packagist . Powtórz ten sam proces dla każdej zależności: znajdź dodatkowe zależności w odpowiednich
composer.json
plikach i wyszukaj ponownie.Kiedy w końcu będziesz mieć pełną listę wymaganych pakietów, wystarczy zainstalować je wszystkie jeden po drugim. W większości jest to po prostu kwestia upuszczenia plików gdzieś w katalogu projektu. Ale musisz także upewnić się, że PHP może znaleźć potrzebne klasy. Ponieważ nie używasz automatycznego ładowania programu Composer, musisz dodać je do własnego, niestandardowego autoloadera. Możesz znaleźć informacje z odpowiednich
composer.json
plików, np .:"autoload": { "psr-4": { "Coinbase\\Wallet\\": "src/" } },
Jeśli nie używasz automatycznego programu ładującego klasy, musisz określić osobę
require_once
instrukcje. Prawdopodobnie będziesz potrzebować wielu prób i błędów, ponieważ większość autorów bibliotek nie będzie się starać tego dokumentować.Ponadto, na wypadek gdyby było zamieszanie w tej sprawie:
Composer nie jest doskonały i nie pasuje do wszystkich przypadków użycia, ale jeśli chodzi o instalację biblioteki, która na nim polega, jest to niewątpliwie najlepsza alternatywa i całkiem przyzwoita.
Sprawdziłem inne odpowiedzi, które pojawiły się po mojej. Najczęściej dzielą się na dwie kategorie:
O ile czegoś nie brakuje, żadna z nich nie odnosi się do skarg wyrażonych przez PO:
źródło
Możesz wypróbować https://php-download.com/, który pomoże ci pobrać wszystkie zależności przez większość czasu wraz z
vendor
folderem. Obiecuje, że kompozytor nie jest wymagany. Sam to wypróbowałem. Znajduje i tworzy wszystkie wymagane foldery i zamyka je w celu pobrania. Działa świetnie !!źródło
Używam hostingu współdzielonego dla witryny internetowej i nie mogę tam wykonywać poleceń. Oprócz uruchamiania programu Composer za pośrednictwem żądania skryptu php, które żądam za pośrednictwem przeglądarki, zwykle używam tego przepływu pracy:
zrób plik composer.json wklej w nim następującą zawartość
{ "require": { "coinbase/coinbase": "~2.0" } }
Przejdź do katalogu z wybraną powłoką (bash, git-bash, cmd, windows bash)
php composer.phar update
uwzględnij w swoim projekcie php miejsce, w którym ładujesz swoje biblioteki (zmień ścieżkę do miejsca, w którym załadowałeś katalog dostawcy, aby zawierał ten plik automatycznego ładowania)
require_once('vendor/autoload.php');
W ten sposób uzyskujesz korzyści z zarządzania zależnościami i nie musisz ręcznie włączać wszystkich gazylionów plików i ręcznie pobierać wszystkich zależności, a aktualizowanie ich jest tak proste, jak wpisywanie,
php composer.phar update
a następnie zastępowanie katalogu dostawcy na serwerze nowy.źródło
Musiałem to zrobić dla serwera FTP, do którego nie miałem dostępu SSH. Witryna wymieniona tutaj działała, a potem zdałem sobie sprawę, że możesz po prostu zainstalować kompozytor na własnym serwerze (używając wersji PHP twojego celu), a następnie skopiować wszystkie pliki.
źródło
To nie jest ostateczne rozwiązanie, ale dla mnie było to bardzo pomocne w większości przypadków: https://github.com/Wilkins/composer-file-loader
Wiem, że to stare pytanie, ale mam nadzieję, że komuś pomoże.
źródło
Alternatywne rozwiązanie, które zadziałało dla mnie (ponieważ php-download przestało działać) można zrobić, tworząc własny mały lokalny program do pobierania kompozytorów.
c:\temp
i po prostu wpisz zależność kompozytora, na przykład:composer require league/oauth2-client
c:\temp
folderu do hosta internetowego za pomocą programu FTPrequire("vendor/autoload.php");
źródło