* @license GNU General Public License, version 2 (GPL-2.0) * * For full copyright and license information, please see * the docs/CREDITS.txt file. * */ namespace phpbb\install\controller; use phpbb\install\helper\config; use Symfony\Component\HttpFoundation\BinaryFileResponse; use Symfony\Component\HttpFoundation\ResponseHeaderBag; class archive_download { /** * @var config */ protected $installer_config; /** * Constructor * * @param config $config */ public function __construct(config $config) { $this->installer_config = $config; $this->installer_config->load_config(); } /** * Sends response with the merge conflict archive * * Merge conflicts are always have to be resolved manually, * so we use a different archive for that. * * @return BinaryFileResponse */ public function conflict_archive() { $filename = $this->installer_config->get('update_file_conflict_archive', false); if (!$filename) { die ('The requested file is not exist.'); } return $this->send_response($filename); } /** * Sends response with the updated files' archive * * @return BinaryFileResponse */ public function update_archive() { $filename = $this->installer_config->get('update_file_archive', ''); if (!$filename) { die ('The requested file is not exist.'); } return $this->send_response($filename); } /** * Generates a download response * * @param string $filename Path to the file to download * * @return BinaryFileResponse Response object */ private function send_response($filename) { $response = new BinaryFileResponse($filename); $response->setContentDisposition( ResponseHeaderBag::DISPOSITION_ATTACHMENT, basename($filename) ); return $response; } }