it-swarm.com.ru

Как установить пакеты Composer PHP без Composer?

Я пытаюсь установить API Coinbase PHP, но для этого требуется Composer:

https://github.com/coinbase/coinbase-php

Я ищу универсальное PHP решение (возможно, функцию), которое позволило бы мне устанавливать composer пакеты прямо на мой сервер без использования Composer.

Я думаю, что разработчики Composer считают, что они помогают людям, но на самом деле есть тысячи начинающих разработчиков, которые не могут изучать веб-разработку из-за "барьера Composer".

Было бы действительно полезно, если бы было гибкое решение или какой-то подход, где мы могли бы установить без Composer? Как я могу это сделать?

Пожалуйста, не отвечайте с сарказмом . Есть люди, которые не хотят использовать Composer, и я не понимаю, почему мы должны быть включены в конкретное стороннее программное обеспечение для веб-разработки.

61
Amy Neville

composer.json file перечисляет зависимости. В вашем примере:

"require": {
    "php": ">=5.5.0",
    "guzzlehttp/guzzle": "^6.0",
    "psr/http-message": "^1.0",
    "psr/log": "^1.0"
},

Затем вы должны найти соответствующие пакеты на сайте packagist . Повторите один и тот же процесс для каждой зависимости: найдите дополнительные зависимости в их соответствующих файлах composer.json и повторите поиск.

Когда у вас наконец появится полный список необходимых пакетов, вам нужно будет установить их все по одному. По большей части, это просто вопрос размещения файлов в каталоге вашего проекта. Но вы также должны убедиться, что PHP может найти необходимые классы. Поскольку вы не используете автозагрузчик Composer, вам необходимо добавить их в свой собственный автозагрузчик. Вы можете получить информацию из соответствующих файлов composer.json, например:

"autoload": {
    "psr-4": { "Coinbase\\Wallet\\": "src/" }
},

Если вы не используете автозагрузчик классов, вам необходимо выяснить отдельные операторы require_once. Вам, вероятно, понадобится много проб и ошибок, потому что большинству авторов библиотеки это не важно.

Кроме того, и на всякий случай есть путаница по этому поводу:

  • Composer имеет официальный установщик графического интерфейса для Windows и процедуру установки и копирования командной строки для всех платформ.
  • Composer может быть запущен локально, а его выход просто загружен в другом месте. Вам не нужен SSH в вашем общем хостинге.
  • Команду, необходимую для установки библиотеки, можно скопировать и вставить с веб-сайта пакета - даже если сопровождающий пакета не позаботился о ее документировании, packagist.org генерирует ее по умолчанию.

Composer не идеален и подходит не для всех случаев использования, но когда дело доходит до установки библиотеки, которая зависит от него, это, несомненно, лучшая альтернатива, и она довольно приличная.


Я проверил другие ответы, которые пришли после моего. Они в основном делятся на две категории:

  1. Установите библиотеку и напишите собственный скрипт для скачивания
  2. Используйте онлайн веб-интерфейс для Composer

Если я что-то не упустил, никто из них не рассматривает жалобы, высказанные ФП:

  • Кривая обучения
  • Использование стороннего программного обеспечения
  • Возможность разработки прямо на сервере (я полагаю, используя SSH)
  • Потенциально глубокое дерево зависимостей
22
Álvaro González

Вы можете попробовать https://php-download.com/ , что поможет вам большую часть времени загружать все зависимости вместе с папкой vendor. Обещание composer не требуется. Попробовал сам. Он находит и создает все необходимые папки и архивирует его для скачивания. Работает отлично !!

66
jahajee.com

Я должен был сделать это для FTP-сервера, к которому у меня не было доступа SSH. Сайт, указанный здесь, работал, тогда я понял, что вы можете просто установить composer на свой собственный сервер (используя версию PHP вашей цели), а затем скопировать все файлы.

3
Adam Thompson

Это не окончательное решение, но для меня это было большим подспорьем в большинстве случаев: https://github.com/Wilkins/composer-file-loader

Позвольте вам загрузить файл composer.json так же, как composer сделает это. Это позволяет загружать файл composer.json без composer (поэтому теоретически PHP 5.2 достаточно)

Я знаю, что вопрос старый, но я надеюсь, что он кому-нибудь поможет.

3
helderk

Я использую общий хостинг для веб-сайта и не могу выполнять команды там. Помимо запуска composer через php-скрипт, который я запрашиваю через браузер, я обычно использую этот рабочий процесс:

  • Убедитесь, что у вас установлен php локально.
  • Сделать каталог на рабочем столе.
  • загрузите composer.phar из https://getcomposer.org/download/ (под заголовком * Загрузить вручную ) и разместите его в каталоге.
  • сделать файл composer.json вставить в него следующее содержимое

     {
         "require": {
             "coinbase/coinbase": "~2.0"
         }
     }
    
  • Перейдите в каталог с выбранной оболочкой (bash, git-bash, cmd, windows bash).

  • введите php composer.phar updatescreenshot of bash output
  • Загрузите каталог вендора на свой веб-сервер через ftp или любой другой механизм, который вы используете.
  • включите в ваш проект php, куда вы загружаете свои библиотеки (измените путь туда, куда вы загрузили каталог поставщика, чтобы он включал этот файл автозагрузки)

    require_once('vendor/autoload.php');
    

Таким образом, вы получаете преимущества управления зависимостями, и вам не нужно вручную включать все gazillion файлов и загружать все зависимости вручную, а обновлять их так же просто, как набрать php composer.phar update и затем заменить каталог поставщика на вашем сервере новый.

2
Tschallacka