ComposerなしでComposer PHPパッケージをインストールするにはどうすればよいですか?


97

Coinbase PHP APIをインストールしようとしていますが、Composerが必要です。

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

Composerを使用せずにcomposerパッケージをサーバーに直接インストールできるユニバーサルPHPソリューション(おそらく関数)を探しています。

Composerの開発者は人々を助けていると信じていますが、実際には「Composerバリア」によってWeb開発の学習から締め出されている何千もの初心者開発者がいます。

Composerなしでインストールできる柔軟なソリューションまたは何らかのアプローチがあった場合、それは本当に役立ちますか?これどうやってするの?

皮肉なコメントは返信しないでください。Composerを使いたくない人もいますし、Web開発を行うために特定のサードパーティソフトウェアに群がるべき理由がわかりません。


6
composerを使用するすべてのパッケージは、依然としてPHPファイルでいっぱいの単なるディレクトリです。これらは、composerが存在する前とまったく同じ方法でインストールできincludeます。ファイルをどこかにコピーします。
だます

2
Composerベースのインストールでは、ほとんどの場合パッケージのホームページに表示される単一のコマンドを実行する必要があります。手動インストールのユースケースがあることは理解していますが、それが簡単な方法になることは決してありません。
アルバロ・ゴンサレス

19
@ÁlvaroGonzález私はあなたのコメントにこれ以上同意できませんでした。参照してください:okmaya.com/2016/03/13/package-managers-hate-npm-composer。パッケージマネージャーが一部の人やプロジェクトに適していないと言っているわけではありません。単に、プロジェクトにフォルダーをドロップして参照するよりも、多くの作業と労力が必要になることがよくあります。
ダリン2017年

3
@dallinタイトルにもかかわらず、その記事は主に、現代のオーバーエンジニアリングされたフレームワークとツールチェーン(それ自体の問題)についての怒りです。たまたま30の依存関係があるライブラリをインストールする場合、30の手動インストールを優先してComposerをダンプすると、より男らしく感じられるようになりますが、初心者の開発者にとってはそれほど簡単ではありません。
アルバロ・ゴンサレス

9
@ÁlvaroGonzález正直に言うと、30個の依存関係を持つライブラリをインストールする必要はありませんでした(サウンドのデザインが悪い)。パッケージマネージャーなしでは悪夢になると思います。私の経験はその記事に似ています。私は通常、1つまたは2つの依存関係があるものをインストールしようとし、コーディングを開始する前に、パッケージマネージャーの問題のトラブルシューティングに時間を費やさなければなりません。エラーメッセージは頻繁に発生し、信じられないほどあいまいで難解です。これは私の気持ちをよりよく示すかもしれません:imgur.com/r/webdev/bO7oTf6。首相との私の経験は似ています。
ダリン

回答:


38

composer.jsonファイルには、依存関係を示しています。あなたの例では:

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

次に、packagistサイトで対応するパッケージを見つける必要があります。依存関係ごとに同じプロセスを繰り返しcomposer.jsonます。対応するファイルで追加の依存関係を見つけて、もう一度検索します。

最終的に必要なパッケージの完全なリストができたら、それらを1つずつインストールするだけで済みます。ほとんどの場合、プロジェクトディレクトリのどこかにファイルをドロップするだけです。ただし、PHPが必要なクラスを見つけられるようにする必要もあります。Composerのオートローダーを使用していないため、独自のカスタムオートローダーに追加する必要があります。それぞれのcomposer.jsonファイルから情報を把握できます。例:

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

クラスオートローダーを使用しない場合は、個々のrequire_onceステートメントを理解する必要があります。ほとんどのライブラリ作成者はそれを文書化することを気にしないので、おそらく多くの試行錯誤が必要になります。

また、これについて混乱がある場合に備えて:

  • Composerには、Windows用の公式GUIインストーラーと、すべてのプラットフォーム用のコピーアンドペーストコマンドラインインストール手順があります。
  • Composerはローカルで実行でき、その出力は他の場所にアップロードされます。共有ホスティングでSSHは必要ありません。
  • ライブラリのインストールに必要なコマンドは、パッケージのWebサイトからコピーして貼り付けることができます。パッケージのメンテナーがドキュメントを作成しなくても、デフォルトでpackagist.orgが生成します。

Composerは完璧ではなく、すべてのユースケースに適しているわけではありませんが、それに依存するライブラリのインストールに関しては、間違いなく最良の代替手段であり、かなりまともなものです。


私は私の後に来た他の答えをチェックしました。それらは主に2つのカテゴリに分類されます。

  1. ライブラリをインストールし、それを使用してカスタムダウンロードスクリプトを作成する
  2. ComposerのオンラインWebベースのインターフェースを使用する

私が何かを逃していない限り、それらのどれもOPによって表現された不満に対処しません:

  • 学習曲線
  • サードパーティソフトウェアの使用
  • サーバー上で直接開発できる可能性(SSHを使用していると思います)
  • 潜在的に深い依存関係ツリー

23
これで誰もが単にcomposerを使用するように説得されない場合、何もなりません…
deceze

3
まず最初に、composerの現在のバージョンには、どこでも利用できるproc_open()が必要です。また、他にも問題があります。作曲家にはそのメリットがあることには同意しますが、いつか問題が発生することはいつもわかっていました。(Composerを使用して)50以上のクライアントアプリケーション用の共有ライブラリをインストールする方法はまだわかりません。
カルボネン2017

7
ライブラリ開発者がcomposerの使用を停止することを望みます。深刻な本番環境ではそれは禁止です。「ただ作曲家を使う」の後ろに隠れている人々は、そもそも何をしているのか分かりません。
IncredibleHat

108

https://php-download.com/を試すと、ほとんどの場合、すべての依存関係をvendorフォルダーと共にダウンロードできます。それは作曲家が必要としないことを約束します。自分で試してみました。必要なすべてのフォルダを見つけて作成し、ダウンロード用に圧縮します。完璧に動作します!


4
完璧に働いています!ありがとう!!
Yousphere

23
これは受け入れられる答えになるはずです。それは単に作曲家がすることをして、それからzipを返します

githubからのすべてのライブラリーはありません。たとえば、これを使用しようとすると、github.com / mgp25 / Instagram-APIで、見つからないというメッセージが表示されます。
Andi Hamolli 2017年

3
上記の答えは、ウェブサイトがそれを1つのダウンロード可能なステップに緩和する一方で、実行する多くのステップを示しています。私はプロではプログラマーではありませんが、PHPを使用すると非常に簡単に非常識なことができるので、SSHや作曲家、パッケージを習得する必要はありませんでした。これらはオタクやプロを対象としています...。 ...私の答えを支持したすべての人は、ウェブサイトがcomposerよりも優れていると思っていると思います.....それができるなら....それはすべての非オタクプログラマーを助けるでしょう
jahajee.com

4
@ÁlvaroGonzález。個人的には、composerが他のマシンでプロジェクトをコンパイルするかどうかは気にしません。作業しているすべてのマシンにインストール権限がないので、exeファイルを実行せずにWindowsマシンでライブラリを取得する必要がある場合があります。私は作曲家に感謝します。いつもそれを使用することはできません。これは、このサイトがないとプリコンパイルするのにイライラしました。
Altimus Prime

9

Webサイトに共有ホスティングを使用していますが、そこでコマンドを実行できません。ブラウザ経由でリクエストするphpスクリプトリクエスト経由でcomposerを実行する以外に、私は通常このワークフローを使用します。

  • phpがローカルにインストールされていることを確認してください。
  • デスクトップにディレクトリを作成します。
  • https://getcomposer.org/download/(ヘッダー* Manual Downloadの下)からcomposer.pharをダウンロードし、ディレクトリに配置します。
  • ファイルcomposer.jsonを次の内容に貼り付けます

     {
         "require": {
             "coinbase/coinbase": "~2.0"
         }
     }
  • 選択したシェル(bash、git-bash、cmd、windows bash)でディレクトリを参照します。

  • タイプ php composer.phar update bash出力のスクリーンショット
  • ベンダーディレクトリをウェブサーバーにftpまたは使用している任意の方法でアップロードします。
  • ライブラリをロードするphpプロジェクトに含めます(ベンダーディレクトリをアップロードした場所のパスを変更して、オートロードファイルを含めます)

    require_once('vendor/autoload.php');

このようにして、依存関係管理の利点を活用できます。すべての膨大な数のファイルを手動で含めてすべての依存関係を手動でダウンロードする必要はありません。更新はphp composer.phar update、サーバーのベンダーディレクトリを入力して置き換えるだけで簡単です。新しいもの。


4

私は、SSHアクセスがなかったFTPサーバーに対してこれを行わなければなりませんでした。ここにリストされたサイトは機能しましたが、自分のサーバーに(ターゲットのPHPバージョンを使用して)composerをインストールし、すべてのファイルをコピーできることに気付きました。


1
それが答えになるはずです。私には完璧に働きました
マイケル・ウォルター

1
あなたの答えをもっとよく説明してもらえますか?私の愚かさでごめんなさい。
Andi Hamolli 2017年

1
@IchHabsDrauf基本的に彼はcomposer(この部分では実際にはanwserではありません)を使用し、ファイルを本番環境にコピーすることをメンテします。それに対する私のコメントは、多分開発環境で作曲家のいない人もいるので、これは実際にはアンサーではないということです。
Gall Annonim、

3

これは究極の解決策ではありませんが、私にとってはほとんどの場合に大きな助けとなりました:https : //github.com/Wilkins/composer-file-loader

composerが行うようにcomposer.jsonファイルをロードできるようにします。これにより、composerなしでcomposer.jsonファイルをロードできます(したがって、理論的にはPHP 5.2で十分です)。

私は質問が古いことを知っていますが、それが誰かを助けることを願っています。


1

(php-downloadがダウンしていたため)私のために機能した代替ソリューションは、独自の小さなローカルコンポーザーダウンローダーを作成することで実行できます。

  1. XAMPPをダウンロードしてローカルにインストールします:https : //www.apachefriends.org/index.html
  2. ローカルでcomposerをダウンロードしてインストールします:https : //getcomposer.org/download/
  3. コマンドプロンプトを開き、ナビゲートして言いc:\temp、単純に作曲家の依存関係を入力します。次に例を示します。composer require league/oauth2-client
  4. c:\tempFTPプログラムを使用して、フォルダーからWebホストにファイルをコピーする
  5. これをphpの上部に追加します。 require("vendor/autoload.php");

魅力のように働いた!これをありがとう:)
ajmeese7
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.