diff options
author | Tristan Darricau <github@nicofuma.fr> | 2014-06-29 00:33:31 +0200 |
---|---|---|
committer | Tristan Darricau <github@nicofuma.fr> | 2014-07-07 01:02:34 +0200 |
commit | 2db160ff87fa42ca6c47e580de9bc9d7e5cced49 (patch) | |
tree | 14aa95772848e1a813e338a33de8be45df401518 /phpBB/phpbb/config_php_file.php | |
parent | 40937e21c58399a847d04f23423622b0e1894446 (diff) | |
download | forums-2db160ff87fa42ca6c47e580de9bc9d7e5cced49.tar forums-2db160ff87fa42ca6c47e580de9bc9d7e5cced49.tar.gz forums-2db160ff87fa42ca6c47e580de9bc9d7e5cced49.tar.bz2 forums-2db160ff87fa42ca6c47e580de9bc9d7e5cced49.tar.xz forums-2db160ff87fa42ca6c47e580de9bc9d7e5cced49.zip |
[ticket/12775] Rename config_php to config_php_file
PHPBB3-12775
Diffstat (limited to 'phpBB/phpbb/config_php_file.php')
-rw-r--r-- | phpBB/phpbb/config_php_file.php | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/phpBB/phpbb/config_php_file.php b/phpBB/phpbb/config_php_file.php new file mode 100644 index 0000000000..5a2fbca0dd --- /dev/null +++ b/phpBB/phpbb/config_php_file.php @@ -0,0 +1,127 @@ +<?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_file +{ + /** @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(); + + /** + * The path to the config file. (Defaults: $phpbb_root_path . 'config.' . $php_ext) + * + * @var string + */ + protected $config_file; + + /** + * 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; + $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; + } + + /** + * Returns an array containing all the variables defined into the config.php file + * + * @return bool|array Return the content of the config file or false if the file does not exists. + */ + 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() + { + if (!$this->config_loaded) + { + if (file_exists($this->config_file)) + { + $this->defined_vars = null; + $this->defined_vars = get_defined_vars(); + + require($this->config_file); + $this->config_data = array_diff_key(get_defined_vars(), $this->defined_vars); + + $this->config_loaded = true; + } + else + { + return false; + } + } + + return true; + } +} |