phpBB

Code Changes

File: phpbb/version_helper.php

  Unmodified   Added   Modified   Removed
Line 12Line 12
*/

namespace phpbb;

*/

namespace phpbb;

 

use phpbb\exception\version_check_exception;


/**
* Class to handle version checking and comparison


/**
* Class to handle version checking and comparison

Line 57Line 59

/** @var \phpbb\file_downloader */
protected $file_downloader;


/** @var \phpbb\file_downloader */
protected $file_downloader;


/** @var \phpbb\user */
protected $user;

 

/**
* Constructor


/**
* Constructor

Line 67Line 66
	 * @param \phpbb\cache\service $cache
* @param \phpbb\config\config $config
* @param \phpbb\file_downloader $file_downloader

	 * @param \phpbb\cache\service $cache
* @param \phpbb\config\config $config
* @param \phpbb\file_downloader $file_downloader

	 * @param \phpbb\user $user

 
	 */

	 */

	public function __construct(\phpbb\cache\service $cache, \phpbb\config\config $config, \phpbb\file_downloader $file_downloader, \phpbb\user $user)

	public function __construct(\phpbb\cache\service $cache, \phpbb\config\config $config, \phpbb\file_downloader $file_downloader)

	{
$this->cache = $cache;
$this->config = $config;
$this->file_downloader = $file_downloader;

	{
$this->cache = $cache;
$this->config = $config;
$this->file_downloader = $file_downloader;

		$this->user = $user;

 

if (defined('PHPBB_QA'))
{


if (defined('PHPBB_QA'))
{

Line 175Line 172
	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string

	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string

	* @throws \RuntimeException

	* @throws version_check_exception

	*/
public function get_latest_on_current_branch($force_update = false, $force_cache = false)
{

	*/
public function get_latest_on_current_branch($force_update = false, $force_cache = false)
{

Line 206Line 203
	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string

	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string

	* @throws \RuntimeException

	* @throws version_check_exception

	*/
public function get_suggested_updates($force_update = false, $force_cache = false)
{

	*/
public function get_suggested_updates($force_update = false, $force_cache = false)
{

Line 227Line 224
	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string Version info

	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string Version info

	* @throws \RuntimeException

	* @throws version_check_exception

	*/
public function get_versions_matching_stability($force_update = false, $force_cache = false)
{

	*/
public function get_versions_matching_stability($force_update = false, $force_cache = false)
{

Line 247Line 244
	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string Version info, includes stable and unstable data

	* @param bool $force_update Ignores cached data. Defaults to false.
* @param bool $force_cache Force the use of the cache. Override $force_update.
* @return string Version info, includes stable and unstable data

	* @throws \RuntimeException

	* @throws version_check_exception

	*/
public function get_versions($force_update = false, $force_cache = false)
{

	*/
public function get_versions($force_update = false, $force_cache = false)
{

Line 257Line 254

if ($info === false && $force_cache)
{


if ($info === false && $force_cache)
{

			throw new \RuntimeException($this->user->lang('VERSIONCHECK_FAIL'));

			throw new version_check_exception('VERSIONCHECK_FAIL');

		}
else if ($info === false || $force_update)
{

		}
else if ($info === false || $force_update)
{

			try {

 
				$info = $this->file_downloader->get($this->host, $this->path, $this->file, $this->use_ssl ? 443 : 80);

				$info = $this->file_downloader->get($this->host, $this->path, $this->file, $this->use_ssl ? 443 : 80);

			}
catch (\phpbb\exception\runtime_exception $exception)
{
$prepare_parameters = array_merge(array($exception->getMessage()), $exception->get_parameters());
throw new \RuntimeException(call_user_func_array(array($this->user, 'lang'), $prepare_parameters));
}

 
			$error_string = $this->file_downloader->get_error_string();

if (!empty($error_string))
{

			$error_string = $this->file_downloader->get_error_string();

if (!empty($error_string))
{

				throw new \RuntimeException($error_string);

				throw new version_check_exception($error_string);

			}

$info = json_decode($info, true);

			}

$info = json_decode($info, true);

Line 290Line 280

if (empty($info['stable']) && empty($info['unstable']))
{


if (empty($info['stable']) && empty($info['unstable']))
{

				$this->user->add_lang('acp/common');

throw new \RuntimeException($this->user->lang('VERSIONCHECK_FAIL'));

				throw new version_check_exception('VERSIONCHECK_FAIL');



			}

$info['stable'] = (empty($info['stable'])) ? array() : $info['stable'];

			}

$info['stable'] = (empty($info['stable'])) ? array() : $info['stable'];