web-dev-qa-db-ja.com

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

Coinbase PHP AP​​Iをインストールしようとしていますが、Composerが必要です:

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

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

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

Composerを使用せずにインストールできる柔軟なソリューションや何らかのアプローチがあれば、本当に役立ちますか?これどうやってするの?

皮肉なコメントを返さないでください。 Composerを使いたくない人がいますが、Web開発を行うために特定のサードパーティソフトウェアに取り組まなければならない理由がわかりません。

69
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ファイルで追加の依存関係を見つけて、再度検索します。

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

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

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

また、念のためにこれについて混乱があります:

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

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


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

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

私が何かを逃さない限り、OPが表明した苦情に対処するものはありません。

  • 学習曲線
  • サードパーティソフトウェアの使用
  • サーバー上で適切に開発する可能性(SSHを使用して、私は推測します)
  • 潜在的に深い依存関係ツリー
27

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

76
jahajee.com

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

3
Adam Thompson

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

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

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

3
helderk

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

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

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

  • タイプphp composer.phar updatescreenshot of bash output
  • ベンダーディレクトリをftpまたは使用するメカニック経由でウェブサーバーにアップロードします。
  • ライブラリをロードするphpプロジェクトに含めます(ベンダーdirをアップロードした場所へのパスを変更して、自動ロードファイルを含めます)。

    require_once('vendor/autoload.php');
    

これにより、依存関係管理の利点を得ることができ、膨大な数のファイルをすべて手動で含めてすべての依存関係を手動でダウンロードする必要がなく、php composer.phar updateと入力してベンダーディレクトリを置き換えるのと同じくらい簡単ですサーバー上の新しいサーバー。

2
Tschallacka