47 lines
1.4 KiB
ReStructuredText
47 lines
1.4 KiB
ReStructuredText
|
=======
|
||
|
RingPHP
|
||
|
=======
|
||
|
|
||
|
Provides a simple API and specification that abstracts away the details of HTTP
|
||
|
into a single PHP function. RingPHP be used to power HTTP clients and servers
|
||
|
through a PHP function that accepts a request hash and returns a response hash
|
||
|
that is fulfilled using a `promise <https://github.com/reactphp/promise>`_,
|
||
|
allowing RingPHP to support both synchronous and asynchronous workflows.
|
||
|
|
||
|
By abstracting the implementation details of different HTTP clients and
|
||
|
servers, RingPHP allows you to utilize pluggable HTTP clients and servers
|
||
|
without tying your application to a specific implementation.
|
||
|
|
||
|
.. code-block:: php
|
||
|
|
||
|
<?php
|
||
|
require 'vendor/autoload.php';
|
||
|
|
||
|
use GuzzleHttp\Ring\Client\CurlHandler;
|
||
|
|
||
|
$handler = new CurlHandler();
|
||
|
$response = $handler([
|
||
|
'http_method' => 'GET',
|
||
|
'uri' => '/',
|
||
|
'headers' => [
|
||
|
'host' => ['www.google.com'],
|
||
|
'x-foo' => ['baz']
|
||
|
]
|
||
|
]);
|
||
|
|
||
|
$response->then(function (array $response) {
|
||
|
echo $response['status'];
|
||
|
});
|
||
|
|
||
|
$response->wait();
|
||
|
|
||
|
RingPHP is inspired by Clojure's `Ring <https://github.com/ring-clojure/ring>`_,
|
||
|
which, in turn, was inspired by Python's WSGI and Ruby's Rack. RingPHP is
|
||
|
utilized as the handler layer in `Guzzle <http://guzzlephp.org>`_ 5.0+ to send
|
||
|
HTTP requests.
|
||
|
|
||
|
Documentation
|
||
|
-------------
|
||
|
|
||
|
See http://ringphp.readthedocs.org/ for the full online documentation.
|