pharext\Task\StreamFetch::createStreamContext PHP Method

createStreamContext() private method

private createStreamContext ( )
    private function createStreamContext()
    {
        $progress = $this->progress;
        /* avoid bytes_max bug of older PHP versions */
        $maxbytes = 0;
        return stream_context_create([], ["notification" => function ($notification, $severity, $message, $code, $bytes_cur, $bytes_max) use($progress, &$maxbytes) {
            if ($bytes_max > $maxbytes) {
                $maxbytes = $bytes_max;
            }
            switch ($notification) {
                case STREAM_NOTIFY_CONNECT:
                    $progress(0);
                    break;
                case STREAM_NOTIFY_PROGRESS:
                    $progress($maxbytes > 0 ? $bytes_cur / $maxbytes : 0.5);
                    break;
                case STREAM_NOTIFY_COMPLETED:
                    /* this is sometimes not generated, why? */
                    $progress(1);
                    break;
            }
        }]);
    }