2016-11-11 6 views
23

Я пытаюсь установить Coinbase PHP API, но это требует Composer:Как установить пакеты Composer PHP без Composer?

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

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

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

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

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

+2

Все пакеты, использующие композитор, по-прежнему представляют собой простые каталоги, заполненные файлами PHP. Вы можете установить их точно так же, как и до создания композитора: скопируйте их где-нибудь и «включите» файлы. – deceze

+2

Установка на основе композитора подразумевает выполнение одной команды, которая почти всегда отображается на домашней странице пакета. Я понимаю, что для ручной установки используются прецеденты, но это никогда не будет более простым методом. –

+8

@ ÁlvaroGonzález Я больше не согласен с вашим комментарием. См.: Http://okmaya.com/2016/03/13/package-managers-hate-npm-composer/. Я не говорю, что менеджеры пакетов не очень хороши для некоторых людей и проектов - просто для того, чтобы часто требовать больше усилий и усилий, чем просто отбрасывать папку в вашем проекте и ссылаться на нее. – dallin

ответ

11

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, и скопировать и вставить процедуру установки командной строки для всех платформ.
  • Композитор может быть запущен локально, а его вывод загружен только в другом месте. Вам не нужен SSH на вашем общем хостинге.
  • Команда, необходимая для установки библиотеки, может быть скопирована и вставлена ​​с веб-сайта пакета - даже если разработчик пакета не хотел документировать его, packagist.org генерирует его по умолчанию.

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


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

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

Если я что-то не хватает, ни один из их рассмотрения жалобы, высказанные ОР:

  • кривой обучения
  • Использование программного обеспечения сторонних
  • Возможности разработка прямо на сервере (с помощью SSH, я полагаю)
  • Потенциально глубокого дерево зависимостей
+10

Если это не убеждает всех просто использовать композитор, ничего не будет ... – deceze

+0

Прежде всего, для текущей версии композитора требуется proc_open(), который недоступен повсюду. И есть и другие проблемы. Хотя я согласен с тем, что у композитора есть свои достоинства, я всегда знал, что однажды столкнулся с проблемой, и в этот день. Мне еще предстоит выяснить, как установить общую библиотеку для более 50 клиентских приложений (используя Composer). – karvonen

18

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

+1

Работаю отлично! Благодаря !! – Yousphere

+6

Это должен быть принятый ответ. Он просто делает то, что делает композитор, а затем возвращает zip – Soaku

+0

У него нет всех библиотек из github. Когда я пытаюсь использовать это, например: https://github.com/mgp25/Instagram-API, он говорит, что не может его найти. – IchHabsDrauf

1

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

+0

Это должен быть ответ. Отлично подходит для меня, –

+0

Не могли бы вы объяснить ваш ответ лучше? Извините за мою глупость. – IchHabsDrauf

+0

@IchHabsDrauf В основном он должен использовать композитора (в этой части, это не совсем anwser), а не копировать файлы в производственную среду.Мой комментарий к этому может состоять в том, что, возможно, есть люди без композитора и на en envroment тоже, таким образом это не действительно anwser. –

0

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

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

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

0

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

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

    { 
        "require": { 
         "coinbase/coinbase": "~2.0" 
        } 
    } 
    
  • Перейдите в каталог с оболочкой вашего выбора (баш, ГИТ-Баш, CMD, окна Баш)

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

    require_once('vendor/autoload.php'); 
    

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

Смежные вопросы