Perpustakaan ini tidak dalam pengembangan aktif.
Harap pertimbangkan GuzzleHttp/Guzzle atau perpustakaan lain sebagai gantinya.
Perbaikan bug saja.
Hyper adalah klien HTTP yang bertujuan untuk memberikan antarmuka yang sederhana, tetapi kuat untuk membuat panggilan HTTP dan mengambil dan memanipulasi data API.
Hyper::get('http://some/url') .Hyper::make(...)->get('http://some/url') .Response yang memberikan informasi yang berguna seperti kode status HTTP, tubuh, dan header.Response bercampur dalam rexlab array-objek yang memungkinkan Anda untuk dengan mudah menginterogasi respons API.Request asli melalui $response->getRequest() . <?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" ;Untuk menginstal di proyek Anda:
composer require rexlabs/hyper-http Metode yang tenang semuanya mengembalikan objek Response yang membuat berinteraksi dengan respons sederhana.
<?php
use Rexlabs HyperHttp Hyper ;
$ response = Hyper:: get ( ' https://example.com/url ' );
echo ' Status Code: ' . $ response -> getStatusCode (). "n" ;
echo ( string ) $ response ; // Output the response bodyKarena respons mixin arrayObject Anda dapat dengan mudah mengambil dan memanipulasi nilai dari respons:
<?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 ' )); Gunakan make() untuk menyederhanakan instantiasi dan kemudian mengatur objek untuk permintaan di masa depan:
<?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)Untuk mendapatkan kendali penuh atas instantiasi, gunakan konstruktor dan lulus dalam contoh tangkap:
<?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 ' );Anda dapat dengan mudah menghasilkan permintaan ikal untuk berjalan dari baris perintah untuk mereproduksi permintaan terakhir Anda:
<?php
use Rexlabs HyperHttp Hyper ;
echo Hyper:: get ( ' https://example.com/api/v1/resources ' )
-> getCurlRequest ();Keluaran:
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 memberikan metode berikut untuk berinteraksi dengan titik akhir jarak jauh:
get(mixed $uri, array $query = [], array $headers = [], array $options = []): Response
Kirim permintaan HTTP Get, dan kembalikan tanggapannya:
$ response = Hyper:: get ( ' https://example.com ' , [ ' sort ' => ' latest ' ], [ ' X-Greeting ' => ' Hello! ' ]);
$ response = $ hyper -> get ( ' /v1/people ' );$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$query adalah array opsional parameter kueri yang akan ditambahkan ke URI.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle. post(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
Kirim permintaan posting HTTP, dan kembalikan tanggapannya:
$ response = Hyper:: post ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> post ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$body adalah muatannya. Jika Anda memberikan array, itu akan dikonversi dan diangkut sebagai JSON.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle.Metode alternatif:
$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
Kirim permintaan HTTP Put HTTP, dan kembalikan tanggapannya:
$ response = Hyper:: put ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> put ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$body adalah muatannya. Jika Anda memberikan array, itu akan dikonversi dan diangkut sebagai JSON.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle. patch(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
Kirim permintaan patch HTTP, dan kembalikan tanggapannya:
$ response = Hyper:: patch ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> patch ( ' /v1/people ' , [ ' name ' => ' Bob ' , ' age ' => 25 ]);$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$body adalah muatannya. Jika Anda memberikan array, itu akan dikonversi dan diangkut sebagai JSON.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle. delete(mixed $uri, mixed $body = null, array $headers = [], array $options = []): Response
Kirim Permintaan Hapus HTTP, dan kembalikan tanggapannya:
$ response = Hyper:: delete ( ' https://example.com/fruit ' , ' apples ' );
$ response = $ hyper -> delete ( ' /v1/people/1 ' );$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$body adalah muatan opsional. Jika Anda memberikan array, itu akan dikonversi dan diangkut sebagai JSON.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle. call(string $method, mixed $uri, mixed $body, array $headers, array $options): Response
Kirim permintaan HTTP generik dengan menentukan method sebagai argumen pertama.
// 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 adalah kata kerja http. Misalnya. GET atau sesuatu bukan bagian dari standar.$uri adalah string atau Uri . Jika string tidak absolut, itu akan ditambahkan ke pangkalan URI.$body adalah muatan opsional. Jika Anda memberikan array, itu akan dikonversi dan diangkut sebagai JSON.$headers adalah array header opsional (diindeks dengan nama header) yang akan digabungkan dengan header global apa pun.$options adalah array opsi opsi opsi klien Guzzle. Metode Tersedia dari RexlabsHyperHttpMessageRequest Object:
Kembalikan objek Uriinterface yang merangkum URI/URL untuk permintaan ini.
Kembalikan kata kerja metode http untuk permintaan ini.
Retur serangkaian header untuk Request ini
Kembalikan permintaan CURL (String) yang cocok untuk berjalan dari baris perintah. Berguna untuk permintaan debugging.
Metode Tersedia dari RexlabsHyperHttpMessageResponse :
Kembalikan RexlabsHyperHttpMessageRequest objek yang terkait dengan Response
Kembalikan permintaan CURL (String) yang cocok untuk berjalan dari baris perintah. Berguna untuk permintaan debugging.
Kembalikan kode status HTTP untuk Response ini. MISALNYA. 200
Kembalikan frasa alasan HTTP yang terkait dengan kode status. MISALNYA. "OKE"
Mengembalikan true jika ini adalah respons JSON.
Mengubah respons JSON ke array dan mengembalikan array.
Mengubah respons JSON ke ArrayObject
Setiap objek Response memiliki semua metode dan fungsionalitas kelas ArrayObject dari paket rexlabsarray-object .
Ini berarti berdasarkan muatan respons berikut:
{
"books" : [
{
"id" : 1 ,
"title" : " 1984 " ,
"author" : " George Orwell "
},
{
"id" : 2 ,
"title" : " Pride and Prejudice " ,
"author" : " Jane Austen "
}
]
}Anda dapat melakukan fungsi berikut:
$ 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" ;
}Anda juga dapat menelepon:
$ obj = $ response -> toObject (); // Instance of Arraybject Setel konfigurasi default untuk semua klien (default ke [])
Hyper:: setDefaultConfig ( $ config );Setel konfigurasi untuk klien ini (nilai akan mengganti / menggabungkan dengan default)
$ client = Hyper:: make ( $ config ); Atur logger default yang digunakan oleh semua klien yang tidak menyediakannya.
Harus mengimplementasikan LoggerInterface (default ke NullLogger )
Hyper:: setDefaultLogger ( $ logger );Log string curl untuk semua permintaan (memerlukan set logger)
$ config = [
' log_curl ' => true ,
]; Atur konfigurasi yang diteruskan ke GuzzleClient yang mendasarinya
$ config = [
' guzzle ' => [
' verify ' => false ,
],
];
// Set for all clients
Hyper:: setDefaultConfig ( $ config );
// Set for one client
$ client = Hyper:: make ( $ config );Untuk menjalankan tes:
composer testsUntuk menjalankan laporan cakupan:
composer coverage Laporan Cakupan adalah output ke ./tests/report/index.html
Hyper memungkinkan ekstensi untuk klien khusus oleh:
MyHyperSubclass akan mengembalikan instance yang benar yang dibuat oleh MyHyperSubclassHyper statis akan mengembalikan instance yang benar yang dibuat oleh Hyperprotected static function makeClient untuk menyesuaikan kelas klien (misalnya ganti new Client dengan new MyClient )protected static function makeConfig untuk menyesuaikan konfigurasi klien defaultprotected static function makeGuzzleConfig untuk menyesuaikan klien Guzzle defaultprotected static function getBaseUri untuk memberikan base_uri default ke klien Kontribusi dipersilakan, silakan kirimkan permintaan tarik atau buat masalah. Kode yang Anda kirim harus diformat menggunakan standar PSR-1/PSR-2.