mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-18 14:31:19 +02:00
[ticket/14039] Revamp updater
PHPBB3-14039
This commit is contained in:
92
phpBB/phpbb/install/controller/archive_download.php
Normal file
92
phpBB/phpbb/install/controller/archive_download.php
Normal file
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user