MXPush Service
Required
How to download
Choose as needed:, (*1)
- Install with composer (
"max13/push": "dev-master")
- Clone the github repository with
git clone <repo> [<dest>]
- Download the zip file on github directly
- Try to find another one by yourself :/
Then place it where you want (readable location, in order to load it)., (*2)
How to use
Captain Obvious is so Obvious, that this is truly the most interesting part of the README., (*3)
You can find a Doxygen doc somewhere, you'll just see how to basically use the library., (*4)
First of all, let's take a simple example. You have your APIs (api.awsome-guy.com) and you want to retrieve a member list from your users resource, with a GET., (*5)
JSON string would be:, (*6)
{
users:[
{
"id": 4,
"username": "foo"
}, {
"id": 12,
"username": "bar"
}
]
}
'abcdefg');
// Make the request and return the status
$res = $mx->get('/users', $params);
?>
From there, you must verify $res because it can be 3 types (so check the type too with ===), (*7)
// MXRequestManager error,
// errno are in the top of the lib file
if ($res === FALSE)
die('Client error: '.$mx->errno());
if ($res === TRUE) // No JSON, may be a PHP Error
die('Parse error: '.$mx->response('body'));
And after that and your own checks (for example, if the property errors is present), you can safely use $res as a stdClass:, (*8)
<?php
echo 'User n0: ' . $res->users[0]->id . "<br />\n";
foreach ($res->users as $user)
echo $user->id . ' / ' . $user->username . "<br />\n";
?>
And this example will output:, (*9)
User n0: 4
4 / foo
12 / bar
That's it. You can already use MXRequestManager !, (*10)
How to check the entire response ?
This is simple, you can call:, (*11)
<?php
echo $mx->rawResponse();
?>
MXRequestManager is intelligent and smart enough to allow you to check the headers simply., (*12)
Here is an example header:, (*13)
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 04 Feb 2013 21:49:22 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.3.21
Content-Encoding: gzip
Vary: Accept-Encoding
When processed, every line are split and stored in an array, accessible by a key, corresponding to the part before the semicolon (:) of each line, except for the first line which has for key Status and the HTTP code accessible with in Code., (*14)
There is an internal multi-dimentional array which contains 2 root keys: headers and body:, (*15)
-
headers contains an associative array of the header's values
-
body is the body returned as a string
Nothing better than an example:, (*16)
'abcdefg');
// Make the request and return the status
$res = $mx->get('/users', $params);
// MXRequestManager error,
// errno are in the top of the lib file
if ($res === FALSE)
die('Client error: '.$mx->errno());
if ($res === TRUE) // No JSON, may be a PHP Error
die('Parse error: '.$mx->response('body'));
echo "HTTP Status: " . $mx->response('headers', 'Status');
echo "
\n";
echo "HTTP Code: " . $mx->response('headers', 'Code');
// Since PHP 5.4 you can use $mx->response()['headers']
echo "
\n";
echo "Response body: " . $mx->response('body');
?>
Additional notes
A sort of manual will come soon..., (*17)