Backup\Controller\IndexController::downloadDatabaseAction PHP Method

downloadDatabaseAction() public method

Download database as gzip
public downloadDatabaseAction ( ) : Zend\Stdlib\ResponseInterface
return Zend\Stdlib\ResponseInterface
    public function downloadDatabaseAction()
    {
        $what = $this->params()->fromPost('what');
        if (empty($what)) {
            return $this->redirect()->toRoute('module/backup');
        }
        $model = null;
        $configuration = $this->getServiceLocator()->get('Config');
        switch ($configuration['db']['driver']) {
            case 'pdo_pgsql':
                $model = new Model\Database\Pgsql();
                break;
            case 'pdo_mysql':
                $model = new Model\Database\Mysql();
                break;
        }
        if (empty($model)) {
            return $this->redirect()->toRoute('module/backup');
        }
        $content = $model->export($what);
        $filename = 'database-backup-' . date('Y-m-d-H-i-s') . '.sql.gz';
        $headers = new Headers();
        $headers->addHeaderLine('Pragma', 'public')->addHeaderLine('Cache-control', 'must-revalidate, post-check=0, pre-check=0')->addHeaderLine('Cache-control', 'private')->addHeaderLine('Expires', -1)->addHeaderLine('Content-Type', 'application/download')->addHeaderLine('Content-Transfer-Encoding', 'binary')->addHeaderLine('Content-Length', strlen($content))->addHeaderLine('Content-Disposition', 'attachment; filename=' . $filename);
        $response = $this->getResponse();
        $response->setHeaders($headers);
        $response->setContent($content);
        return $response;
    }