Coinbase PHP APIをインストールしようとしていますが、Composerが必要です:
https://github.com/coinbase/coinbase-php
Composerを使用せずにサーバーにPHPパッケージを直接インストールできるようにする汎用composerソリューション(おそらく関数)を探しています。
Composerの開発者は人々を助けていると信じていますが、実際には「Composerバリア」によってWeb開発の学習から締め出されている初心者開発者が何千人もいます。
Composerを使用せずにインストールできる柔軟なソリューションや何らかのアプローチがあれば、本当に役立ちますか?これどうやってするの?
皮肉なコメントを返さないでください。 Composerを使いたくない人がいますが、Web開発を行うために特定のサードパーティソフトウェアに取り組まなければならない理由がわかりません。
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は完璧ではなく、すべてのユースケースに適しているわけではありませんが、それに依存するライブラリのインストールに関しては、間違いなく最良の選択肢であり、かなりまともなものです。
私は私の後に来た他の答えをチェックしました。それらは主に2つのカテゴリに分類されます。
私が何かを逃さない限り、OPが表明した苦情に対処するものはありません。
https://php-download.com/ を試すことができます。これは、ほとんどの場合、vendor
フォルダーとともにすべての依存関係をダウンロードするのに役立ちます。 composerは必須ではないと約束します。自分で試しました。必要なすべてのフォルダーを見つけて作成し、ダウンロード用に圧縮します。完全に動作します!!
SSHアクセスのないFTPサーバーでこれを行う必要がありました。ここにリストされているサイトは機能し、自分のサーバーにcomposerをインストールして(ターゲットのPHPバージョンを使用)、すべてのファイルをコピーできることに気付きました。
これは究極の解決策ではありませんが、私にとってはほとんどの場合に大きな助けになりました。 https://github.com/Wilkins/composer-file-loader
composerが行うようにcomposer.jsonファイルをロードできます。これにより、composerなしでcomposer.jsonファイルをロードできます(理論的にはPHP 5.2で十分です)
私は質問が古いことを知っていますが、それが誰かを助けることを願っています。
Webサイトで共有ホスティングを使用していますが、そこでコマンドを実行できません。ブラウザを介してリクエストするphpスクリプトリクエストを介してcomposerを実行する以外に、通常、このワークフローを使用します。
ファイルを作成しますcomposer.json次の内容を貼り付けます
{
"require": {
"coinbase/coinbase": "~2.0"
}
}
選択したシェル(bash、git-bash、cmd、windows bash)でディレクトリを参照します
php composer.phar update
ライブラリをロードするphpプロジェクトに含めます(ベンダーdirをアップロードした場所へのパスを変更して、自動ロードファイルを含めます)。
require_once('vendor/autoload.php');
これにより、依存関係管理の利点を得ることができ、膨大な数のファイルをすべて手動で含めてすべての依存関係を手動でダウンロードする必要がなく、php composer.phar update
と入力してベンダーディレクトリを置き換えるのと同じくらい簡単ですサーバー上の新しいサーバー。