EventHttp::setCallback
Définit une fonction de rapppel pour une URI spécifique
&reftitle.description;
public
void
EventHttp::setCallback
string
path
string
cb
string
arg
Définit une fonction de rapppel pour une URI spécifique.
&reftitle.parameters;
path
L'URI pour laquelle la fonction de rappel doit être invoquée.
cb
La fonction de rappel callable
qui sera invoquée lors d'une demande sur l'URI
path. Elle doit correspondre au prototype
suivant :
void
callback
EventHttpRequest
req
NULL
mixed
arg
NULL
req
Un objet EventHttpRequest.
arg
Données personnalisées.
arg
Données personnalisées.
&reftitle.returnvalues;
&return.success;
&reftitle.examples;
Exemple avec EventHttp::setCallback
= $max_requests) {
echo "Counter reached max requests $max_requests. Exiting\n";
exit();
}
echo __METHOD__, " called\n";
echo "request:"; var_dump($req);
echo "data:"; var_dump($data);
echo "\n===== DUMP =====\n";
echo "Command:", $req->getCommand(), PHP_EOL;
echo "URI:", $req->getUri(), PHP_EOL;
echo "Input headers:"; var_dump($req->getInputHeaders());
echo "Output headers:"; var_dump($req->getOutputHeaders());
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
echo "\n >> Reading input buffer ...\n";
$buf = $req->getInputBuffer();
while ($s = $buf->readLine(EventBuffer::EOL_ANY)) {
echo $s, PHP_EOL;
}
echo "No more data in the buffer\n";
}
function _http_about($req) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}
function _http_default($req, $data) {
echo __METHOD__, PHP_EOL;
echo "URI: ", $req->getUri(), PHP_EOL;
echo "\n >> Sending reply ...";
$req->sendReply(200, "OK");
echo "OK\n";
}
$port = 8010;
if ($argc > 1) {
$port = (int) $argv[1];
}
if ($port <= 0 || $port > 65535) {
exit("Invalid port");
}
$base = new EventBase();
$http = new EventHttp($base);
$http->setAllowedMethods(EventHttpRequest::CMD_GET | EventHttpRequest::CMD_POST);
$http->setCallback("/dump", "_http_dump", array(4, 8));
$http->setCallback("/about", "_http_about");
$http->setDefaultCallback("_http_default", "custom data value");
$http->bind("0.0.0.0", 8010);
$base->loop();
?>
]]>
&example.outputs.similar;
&reftitle.seealso;
EventHttp::setDefaultCallback