2014-06-27 19:39:47 +02:00
|
|
|
<?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;
|
|
|
|
|
|
|
|
class config_php
|
|
|
|
{
|
|
|
|
/** @var string phpBB Root Path */
|
|
|
|
protected $phpbb_root_path;
|
|
|
|
|
|
|
|
/** @var string php file extension */
|
|
|
|
protected $php_ext;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Indicates if the php config file has been loaded.
|
|
|
|
*
|
|
|
|
* @var bool
|
|
|
|
*/
|
|
|
|
protected $config_loaded = false;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* The content of the php config file
|
|
|
|
*
|
|
|
|
* @var array
|
|
|
|
*/
|
|
|
|
protected $config_data = array();
|
|
|
|
|
2014-06-27 21:02:20 +02:00
|
|
|
/**
|
|
|
|
* The path to the config file. (Defaults: $phpbb_root_path . 'config.' . $php_ext)
|
|
|
|
*
|
|
|
|
* @var string
|
|
|
|
*/
|
|
|
|
protected $config_file;
|
|
|
|
|
2014-06-27 19:39:47 +02:00
|
|
|
/**
|
|
|
|
* Constructor
|
|
|
|
*
|
|
|
|
* @param string $phpbb_root_path Path to the phpbb includes directory.
|
|
|
|
* @param string $php_ext php file extension
|
|
|
|
*/
|
|
|
|
function __construct($phpbb_root_path, $php_ext)
|
|
|
|
{
|
|
|
|
$this->phpbb_root_path = $phpbb_root_path;
|
|
|
|
$this->php_ext = $php_ext;
|
2014-06-27 21:02:20 +02:00
|
|
|
$this->config_file = $this->phpbb_root_path . 'config.' . $this->php_ext;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Set the path to the config file.
|
|
|
|
*
|
|
|
|
* @param string $config_file
|
|
|
|
*/
|
|
|
|
public function set_config_file($config_file)
|
|
|
|
{
|
|
|
|
$this->config_file = $config_file;
|
|
|
|
$this->config_loaded = false;
|
2014-06-27 19:39:47 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2014-06-27 20:03:01 +02:00
|
|
|
* Returns an array containing all the variables defined into the config.php file
|
2014-06-27 19:39:47 +02:00
|
|
|
*
|
|
|
|
* @return bool|array Return the content of the config file or false if the file does not exists.
|
|
|
|
*/
|
2014-06-27 20:03:01 +02:00
|
|
|
public function get_all()
|
|
|
|
{
|
|
|
|
if (!$this->load_config_file())
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return $this->config_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the value of a variable defined into the config.php file and false if the variable does not exist.
|
|
|
|
*
|
|
|
|
* @param string $variable The name of the variable
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function get($variable)
|
|
|
|
{
|
|
|
|
if (!$this->load_config_file())
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
return isset($this->config_data[$variable]) ? $this->config_data[$variable] : false;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Load the config file and store the information.
|
|
|
|
*
|
|
|
|
* @return bool True if the file was correctly loaded, false otherwise.
|
|
|
|
*/
|
|
|
|
protected function load_config_file()
|
2014-06-27 19:39:47 +02:00
|
|
|
{
|
|
|
|
if (!$this->config_loaded)
|
|
|
|
{
|
2014-06-27 21:02:20 +02:00
|
|
|
if (file_exists($this->config_file))
|
2014-06-27 19:39:47 +02:00
|
|
|
{
|
2014-06-27 23:29:43 +02:00
|
|
|
$this->defined_vars = null;
|
|
|
|
$this->defined_vars = get_defined_vars();
|
2014-06-27 19:39:47 +02:00
|
|
|
|
2014-06-27 21:02:20 +02:00
|
|
|
require($this->config_file);
|
2014-06-27 23:29:43 +02:00
|
|
|
$this->config_data = array_diff_key(get_defined_vars(), $this->defined_vars);
|
2014-06-27 19:39:47 +02:00
|
|
|
|
|
|
|
$this->config_loaded = true;
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
2014-06-27 20:41:16 +02:00
|
|
|
|
2014-06-27 20:40:19 +02:00
|
|
|
return true;
|
2014-06-27 19:39:47 +02:00
|
|
|
}
|
|
|
|
}
|