From 64fc47d8c752b9e81ef2eb9bf84d61f7436e2baa Mon Sep 17 00:00:00 2001 From: Ruslan Osmanov Date: Thu, 14 Mar 2013 07:24:34 +0000 Subject: [PATCH] Fix: title of an example Add: new example git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@329776 c90b9560-bf6c-de11-be94-00142212c4b1 --- .../event.constructing.signal.events.xml | 2 +- reference/event/examples.xml | 196 ++++++++++++++++++ 2 files changed, 197 insertions(+), 1 deletion(-) diff --git a/reference/event/event.constructing.signal.events.xml b/reference/event/event.constructing.signal.events.xml index c03e5c08bb..58fcfbcf92 100644 --- a/reference/event/event.constructing.signal.events.xml +++ b/reference/event/event.constructing.signal.events.xml @@ -13,7 +13,7 @@ factory method. - Use libevent's loop to process requests of `eio' extension + Handling <literal>SIGTERM</literal> signal loop(); ]]> + + Simple HTTP server + += $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; + + + + + + + <function>EventHttpConnection::makeRequest</function> example + +getResponseCode(); + + if ($response_code == 0) { + echo "Connection refused\n"; + } elseif ($response_code != 200) { + echo "Unexpected response: $response_code\n"; + } else { + echo "Success: $response_code\n"; + $buf = $req->getInputBuffer(); + echo "Body:\n"; + while ($s = $buf->readLine(EventBuffer::EOL_ANY)) { + echo $s, PHP_EOL; + } + } + } + + $base->exit(NULL); +} + +$address = "127.0.0.1"; +$port = 80; + +$base = new EventBase(); +$conn = new EventHttpConnection($base, NULL, $address, $port); +$conn->setTimeout(5); +$req = new EventHttpRequest("_request_handler", $base); + +$req->addHeader("Host", $address, EventHttpRequest::OUTPUT_HEADER); +$req->addHeader("Content-Length", "0", EventHttpRequest::OUTPUT_HEADER); +$conn->makeRequest($req, EventHttpRequest::CMD_GET, "/index.cphp"); + +$base->loop(); +?> +]]> + + &example.outputs.similar; + + + +