このライブラリはアクティブな開発にありません。
代わりにguzzlehttp/guzzleまたは別のライブラリを検討してください。
バグ修正のみ。
Hyperは、HTTP呼び出しを行い、APIデータを取得および操作するためのシンプルで強力なインターフェイスを提供することを目的としたHTTPクライアントです。
Hyper::get('http://some/url') 。Hyper::make(...)->get('http://some/url')をサポートします。Responseオブジェクトを提供します。Response 、rexlabs array-objectにミックスされ、API応答を簡単に尋問できます。$response->getRequest()を介して元のRequestにアクセスできます。 <?php
use Rexlabs HyperHttp Hyper ;
$ response = Hyper:: get ( ' http://openlibrary.org/subjects/love.json ' );
// The first book for 'love' is: Wuthering Heights
echo " The first book for ' { $ response -> name } ' is: { $ response -> works -> first ()-> title }n" ;
echo " Total works: { $ response -> works -> count ()} books n" ;プロジェクトにインストールするには:
composer require rexlabs/hyper-httpRESTFULメソッドはすべて、応答との対話をシンプルにするResponseオブジェクトをすべて返します。
<?php
use Rexlabs HyperHttp Hyper ;
$ response = Hyper:: get ( ' https://example.com/url ' );
echo ' Status Code: ' . $ response -> getStatusCode (). "n" ;
echo ( string ) $ response ; // Output the response body応答はArrayObjectを組み合わせているため、応答から値を簡単に取得して操作できます。
<?php
use Rexlabs HyperHttp Hyper ;
// Fetch historical price via CryptoCompare's public API for Ethereum
$ response = Hyper:: get ( ' https://min-api.cryptocompare.com/data/pricehistorical ' , [
' fsym ' => ' ETH ' ,
' tsyms ' => ' BTC,USD ' ,
' ts ' => ' 1452680400 ' ,
]);
// Output prices
printf ( " ETH->USD: %s n" , $ response -> get ( ' ETH.USD ' ));
printf ( " ETH->BTC: %s n" , $ response -> get ( ' ETH.BTC ' ));make()を使用してインスタンス化を簡素化し、将来のリクエストに合わせてオブジェクトをセットアップします。
<?php
use Rexlabs HyperHttp Hyper ;
use Rexlabs Logger CustomLogger ;
$ hyper = Hyper:: make ()
-> setBaseUri ( ' http://example.com/api/v1 ' )
-> setHeader ( ' X-App-Identity ' , ' Some App ' )
-> setHeader ( ' X-Correlation-Id ' , ' 12345 ' )
-> setLogger ( new CustomLogger );$hyper = Hyper::make(array $config = [], GuzzleHttpClient $guzzle, PsrLogLoggerInterface $logger)インスタンスを完全に制御するには、コンストラクターを使用して、ガズルインスタンスで渡します。
<?php
use Rexlabs HyperHttp Client ;
use GuzzleHttp Client as GuzzleClient ;
use Psr Log NullLogger ;
$ hyper = new Client ( new GuzzleClient (), new NullLogger (), [
' base_uri ' => ' http://example.com/api/v1 ' ,
' headers ' => [
' X-App-Identity ' => ' Some App ' ,
],
]);
$ response = $ hyper -> get ( ' /messages ' );コマンドラインから実行するためのカールリクエストを簡単に生成して、最後のリクエストを再現できます。
<?php
use Rexlabs HyperHttp Hyper ;
echo Hyper:: get ( ' https://example.com/api/v1/resources ' )
-> getCurlRequest ();出力:
curl
' https://min-api.cryptocompare.com/data/pricehistorical?fsym=ETH&tsyms=BTC%2CUSD&ts=1452680400&extraParams=your_app_name '
-H ' Content-Type: application/json ' -H ' Accept: application/json ' Hyperは、リモートエンドポイントと相互作用するための次の方法を提供します。
get(mixed $uri, array $query = [], array $headers = [], array $options = []): Response
http getリクエストを送信し、応答を返します。
$ response = Hyper:: get ( ' https://example.com ' , [ ' sort ' => ' latest ' ], [ ' X-Greeting ' => ' Hello! ' ]);
$ response = $ hyper -> get ( ' /v1/people ' );$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$query URIに追加されるクエリパラメーターのオプションの配列です。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。 post(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP POSTリクエストを送信し、応答を返します。
$ response = Hyper:: post ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> post ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$bodyはペイロードです。配列を提供すると、変換されてJSONとして輸送されます。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。代替方法:
$response = $hyper->postForm($uri, $formParams, $headers, $options);$response = $hyper->postMultipartForm($uri, $formParams, $headers, $options); put(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
http putリクエストを送信し、応答を返します。
$ response = Hyper:: put ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> put ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$bodyはペイロードです。配列を提供すると、変換されてJSONとして輸送されます。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。 patch(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTPパッチリクエストを送信し、応答を返します。
$ response = Hyper:: patch ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> patch ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$bodyはペイロードです。配列を提供すると、変換されてJSONとして輸送されます。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。 delete(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
HTTP削除リクエストを送信し、応答を返します。
$ response = Hyper:: delete ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> delete ( ' /v1/people/1 ' );$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$bodyオプションのペイロードです。配列を提供すると、変換されてJSONとして輸送されます。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。 call(string $method, mixed $uri, mixed $body, array $headers, array $options): Response
methodを最初の引数として指定して、一般的なHTTP要求を送信します。
// Statically
$ response = Hyper:: call ( ' MOVE ' , ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);
// Http method verbs may also be invoked via method name
$ response = Hyper:: move ( ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);
$ response = Hyper:: somethingelse (...);
// Via object
$ response = $ hyper -> call ( ' MOVE ' , ' myfile1234 ' , [ ' new_location ' => ' some_folder ' ]);$methodはHTTP動詞です。例えば。標準の一部をGETか何か。$uriは文字列またはUriです。文字列が絶対的でない場合、ベースURIに追加されます。$bodyオプションのペイロードです。配列を提供すると、変換されてJSONとして輸送されます。$headersグローバルヘッダーとマージされるヘッダーのオプションの配列(ヘッダー名でインデックス付け)です。$options 、Guzzleクライアントオプションのオプションの配列です。 RexlabsHyperHttpMessageRequestオブジェクトから入手可能な方法:
このリクエストのURI/URLをカプセル化するUriinterfaceオブジェクトを返します。
このリクエストのためにHTTPメソッド動詞を返します。
このRequestのために一連のヘッダーを取得します
コマンドラインから実行するのに適したカール要求(文字列)を返します。リクエストのデバッグに役立ちます。
RexlabsHyperHttpMessageResponseオブジェクトから入手可能な方法:
RexlabsHyperHttpMessageRequest Objectを返します。 Responseに関連付けられています
コマンドラインから実行するのに適したカール要求(文字列)を返します。リクエストのデバッグに役立ちます。
このResponseのHTTPステータスコードを返します。例えば。 200
ステータスコードに関連付けられたHTTP理由フレーズを返します。例えば。 "わかりました"
これがJSON応答である場合、 trueを返します。
JSON応答を配列に変換し、配列を返します。
JSON応答をArrayObjectに変換します
すべてのResponseオブジェクトにはrexlabsarray-objectパッケージからのArrayObjectクラスのすべてのメソッドと機能があります。
これは、次の応答ペイロードに基づいて意味します。
{
"books" : [
{
"id" : 1 ,
"title" : " 1984 " ,
"author" : " George Orwell "
},
{
"id" : 2 ,
"title" : " Pride and Prejudice " ,
"author" : " Jane Austen "
}
]
}次の機能を実行できます。
$ response -> books ; // Instance of ArrayObject
$ response -> books -> pluckArray ( ' author ' ); // array [ 'George Orwell', 'Jane Austen' ]
$ response -> pluckArray ( ' books.author ' ); // array [ 'George Orwell', 'Jane Austen' ]
$ response -> books -> count (); // 2
$ response -> books -> isCollection (); // true
$ response -> books [ 0 ]; // Instance of ArrayObject
$ response -> books [ 0 ]-> isCollection (); // false
$ response -> books [ 0 ]-> id ; // 1
$ response -> get ( ' books.1.title ' ); // "Pride and Prejudice"
foreach ( $ response -> books as $ book ) {
echo "{ $ book -> title } by { $ book -> author }n" ;
}電話することもできます:
$ obj = $ response -> toObject (); // Instance of Arraybject すべてのクライアントのデフォルト構成を設定します(デフォルト[])
Hyper:: setDefaultConfig ( $ config );このクライアントの設定を設定します(値はデフォルトでオーバーライド /マージされます)
$ client = Hyper:: make ( $ config );提供しないすべてのクライアントが使用するデフォルトのロガーを設定します。
LoggerInterfaceを実装する必要があります(デフォルトはNullLoggerになります)
Hyper:: setDefaultLogger ( $ logger );すべてのリクエストに対してカール文字列をログに記録します(ロガーセットが必要です)
$ config = [
' log_curl ' => true ,
];渡された構成を基礎となるGuzzleClientに設定します
$ config = [
' guzzle ' => [
' verify ' => false ,
],
];
// Set for all clients
Hyper:: setDefaultConfig ( $ config );
// Set for one client
$ client = Hyper:: make ( $ config );テストを実行するには:
composer testsカバレッジレポートを実行するには:
composer coverageカバレッジレポートは./tests/report/index.html report/index.htmlに出力されます
Hyperは、次のようにカスタムクライアントの拡張機能を許可します。
MyHyperSubclassの静的使用は、 MyHyperSubclassによって作成された正しいインスタンスを返しますHyperの静的使用は、 Hyperによって作成された正しいインスタンスを返しますprotected static function makeClientをオーバーライドします( new Clientをnew MyClientに置き換えます)protected static function makeConfigをオーバーライドして、デフォルトのクライアント構成をカスタマイズするprotected static function makeGuzzleConfigをオーバーライドして、デフォルトのGuzzleクライアントをカスタマイズするprotected static function getBaseUriをオーバーライドして、クライアントにデフォルトのbase_uriを提供する貢献を歓迎します。プルレクエストを提出するか、問題を作成してください。提出されたコードは、PSR-1/PSR-2標準を使用してフォーマットする必要があります。