/** * @param Stream $source */ public function __invoke(Stream $source) { parent::__invoke($source); }
} $request->onBody($parser)->then(function (\ION\HTTP\WebSocket\Frame $frame) { }); while (!$parser->isFinished()) { $frame = (yield $request->onBody($parser)); } $parser = new \ION\HTTP\MultiPartParser("iddqd", 1000); $request->onBody($parser)->then(function (\ION\HTTP\MultiPart\Part $part) { }); while (!$parser->isFinished()) { $part = (yield $request->onBody($parser)); } $parser = new \ION\HTTP\ChunkedParser(); $request->onBody($parser)->then(function (string $chunk) { }); while (!$parser->isFinished()) { $chunk = (yield $request->onBody($parser)); } $response = (yield \ION\HTTP::request($request)); /* @var \ION\HTTP\Response $response */ echo "Code: " . $response->getStatusCode() . " (" . $response->getReasonPhrase() . ")\n\n"; echo "Headers: \n\n"; var_dump($response->getHeaders()); echo "Content: \n\n"; var_dump($response->getBody()); echo "\n\n"; }); $init = function ($request) { throw \ION\Sequence::quit(); }; ION::dispatch();
/** * @mem check */ public function _testMultiArgs() { $seq = new Sequence(function (int $x, int $y, float $z) { return $x + $y + $z; }); $seq->then(function ($result) { $this->data["result"] = $result; }); $seq(1, 2, 0.3); $this->assertEquals(["result" => 3.3], $this->data); }