Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 39
update_helper
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 5
72.00
0.00% covered (danger)
0.00%
0 / 39
 __construct
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 5
 get_path_to_new_update_files
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 get_path_to_old_update_files
0.00% covered (danger)
0.00%
0 / 1
2.00
0.00% covered (danger)
0.00%
0 / 3
 include_file
0.00% covered (danger)
0.00%
0 / 1
12.00
0.00% covered (danger)
0.00%
0 / 10
 phpbb_version_compare
0.00% covered (danger)
0.00%
0 / 1
6.00
0.00% covered (danger)
0.00%
0 / 18
<?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\helper;
/**
 * General helper functionality for the updater
 */
class update_helper
{
    /**
     * @var string
     */
    protected $path_to_new_files;
    /**
     * @var string
     */
    protected $path_to_old_files;
    /**
     * @var string
     */
    protected $phpbb_root_path;
    /**
     * Constructor
     *
     * @param string    $phpbb_root_path
     */
    public function __construct($phpbb_root_path)
    {
        $this->phpbb_root_path        = $phpbb_root_path;
        $this->path_to_new_files    = $phpbb_root_path . 'install/update/new/';
        $this->path_to_old_files    = $phpbb_root_path . 'install/update/old/';
    }
    /**
     * Returns path to new update files
     *
     * @return string
     */
    public function get_path_to_new_update_files()
    {
        return $this->path_to_new_files;
    }
    /**
     * Returns path to new update files
     *
     * @return string
     */
    public function get_path_to_old_update_files()
    {
        return $this->path_to_old_files;
    }
    /**
     * Includes the updated file if available
     *
     * @param string    $filename    Path to the file relative to phpBB root path
     */
    public function include_file($filename)
    {
        if (is_file($this->path_to_new_files . $filename))
        {
            include_once($this->path_to_new_files . $filename);
        }
        else if (is_file($this->phpbb_root_path . $filename))
        {
            include_once($this->phpbb_root_path . $filename);
        }
    }
    /**
     * Customized version_compare()
     *
     * @param string        $version_number1
     * @param string        $version_number2
     * @param string|null    $operator
     * @return int|bool    The returned value is identical to the PHP build-in function version_compare()
     */
    public function phpbb_version_compare($version_number1, $version_number2, $operator = null)
    {
        if ($operator === null)
        {
            $result = version_compare(
                str_replace('rc', 'RC', strtolower($version_number1)),
                str_replace('rc', 'RC', strtolower($version_number2))
            );
        }
        else
        {
            $result = version_compare(
                str_replace('rc', 'RC', strtolower($version_number1)),
                str_replace('rc', 'RC', strtolower($version_number2)),
                $operator
            );
        }
        return $result;
    }
}