Package Data | |
---|---|
Maintainer Username: | Max13 |
Maintainer Contact: | adnan@rihan.fr (Adnan RIHAN) |
Package Create Date: | 2014-04-02 |
Package Last Update: | 2014-04-03 |
Language: | PHP |
License: | CC-BY-NC-SA-3.0 |
Last Refreshed: | 2024-11-14 15:13:51 |
Package Statistics | |
---|---|
Total Downloads: | 17 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
5.3
Choose as needed:
"max13/push": "dev-master"
)git clone <repo> [<dest>]
Then place it where you want (readable location, in order to load it).
Captain Obvious is so Obvious, that this is truly the most interesting part of the README.
You can find a Doxygen doc somewhere, you'll just see how to basically use the library.
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.
JSON string would be:
{
users:[
{
"id": 4,
"username": "foo"
}, {
"id": 12,
"username": "bar"
}
]
}
<?php
// Adapt the path to your installation
require_once('MXRequestManager-PHP/MXRequestManager.php');
// Instanciate the manager, without the triling slash
$mx = new MXRequestManager('http://api.awsome-guy.com');
// Prepare your parameters, i.e a token
$params = array('token' => '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 ===
)
// 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
:
<?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:
User n0: 4
4 / foo
12 / bar
That's it. You can already use MXRequestManager
!
This is simple, you can call:
<?php
echo $mx->rawResponse();
?>
MXRequestManager
is intelligent and smart enough to allow you to check the headers simply.
Here is an example header:
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
.
There is an internal multi-dimentional array which contains 2 root keys: headers
and body
:
headers
contains an associative array of the header's valuesbody
is the body returned as a string
Nothing better than an example:
<?php
// Adapt the path to your installation
require_once('MXRequestManager-PHP/MXRequestManager.php');
// Instanciate the manager, without the triling slash
$mx = new MXRequestManager('http://api.awsome-guy.com');
// Prepare your parameters, i.e a token
$params = array('token' => '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 "<br />\n";
echo "HTTP Code: " . $mx->response('headers', 'Code');
// Since PHP 5.4 you can use $mx->response()['headers']
echo "<br />\n";
echo "Response body: " . $mx->response('body');
?>
A sort of manual will come soon...