Aerys\Http1Driver::chunkedResponseFilter PHP Method

chunkedResponseFilter() public static method

Apply chunk encoding to response entity bodies
public static chunkedResponseFilter ( InternalRequest $ireq ) : Generator
$ireq InternalRequest
return Generator
    public static function chunkedResponseFilter(InternalRequest $ireq) : \Generator
    {
        $headers = yield;
        if (empty($headers["transfer-encoding"])) {
            return $headers;
        }
        if (!\in_array("chunked", $headers["transfer-encoding"])) {
            return $headers;
        }
        $bodyBuffer = "";
        $bufferSize = $ireq->client->options->chunkBufferSize ?? 8192;
        $unchunked = (yield $headers);
        do {
            $bodyBuffer .= $unchunked;
            if (isset($bodyBuffer[$bufferSize]) || $unchunked === false && $bodyBuffer != "") {
                $chunk = \dechex(\strlen($bodyBuffer)) . "\r\n{$bodyBuffer}\r\n";
                $bodyBuffer = "";
            } else {
                $chunk = null;
            }
        } while (($unchunked = (yield $chunk)) !== null);
        $chunk = $bodyBuffer != "" ? \dechex(\strlen($bodyBuffer)) . "\r\n{$bodyBuffer}\r\n0\r\n\r\n" : "0\r\n\r\n";
        return $chunk;
    }