ZF\Apigility\Admin\Controller\PackageController::fetch PHP Method

fetch() private method

Fetch a generated package.
private fetch ( string $fileId, string $format, Zend\Http\Response $response ) : Zend\Http\Response
$fileId string
$format string
$response Zend\Http\Response
return Zend\Http\Response
    private function fetch($fileId, $format, $response)
    {
        if (!$fileId || !$format) {
            $response->setStatusCode(404);
            return $response;
        }
        $package = $this->getPackageFile($fileId, $format);
        if (!file_exists($package)) {
            $response->setStatusCode(404);
            return $response;
        }
        $stream = fopen($package, 'r');
        if (false === $stream) {
            $response->setStatusCode(500);
            return $response;
        }
        // Mark the package for deletion when the request spins down.
        $this->sentPackage = $package;
        // Create a streamable response.
        $response = new Stream();
        $response->setStream($stream);
        $response->getHeaders()->addHeaderLine('Content-Type', 'application/octet-stream')->addHeaderLine('Content-Disposition', sprintf('attachment; filename="apigility_%s.%s"', date('Y-m-d_H-i-s'), $format))->addHeaderLine('Content-Length', filesize($package));
        return $response;
    }