Пример #1
0
 /**
  * @memcheck
  * @dataProvider providerPromise
  * @param mixed $resolver
  * @param mixed $result
  */
 public function testPromise($resolver, $result)
 {
     $promise = ION::promise($resolver);
     $this->assertInstanceOf('ION\\Promise', $promise);
     $promise->then(function ($data) {
         $this->data["result"] = $this->describe($data);
         $this->stop();
     }, function ($error) {
         $this->data["error"] = $this->describe($error);
         $this->stop();
     });
     $this->loop(0.3, false);
     $this->assertEquals(["result" => $result], $this->data);
 }
Пример #2
0
ION::promise(function () {
    $request = Request::factory([Request::METHOD => "GET", Request::URI => ION\URI::parse("http://example.com/"), Request::VERSION => "1.1", Request::HEADERS => ["User-Agent" => "ION HTTP Client example", "X-Client" => "PHP"]]);
    $respose = \ION\HTTP::request($request, \ION\Stream::socket("example.com:80"));
    $parser = new \ION\HTTP\WebSocketParser();
    if ($frame = $parser($chunk)) {
    }
    $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";
});