aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/config_php_file.php
diff options
context:
space:
mode:
authorTristan Darricau <github@nicofuma.fr>2014-06-29 00:33:31 +0200
committerTristan Darricau <github@nicofuma.fr>2014-07-07 01:02:34 +0200
commit2db160ff87fa42ca6c47e580de9bc9d7e5cced49 (patch)
tree14aa95772848e1a813e338a33de8be45df401518 /phpBB/phpbb/config_php_file.php
parent40937e21c58399a847d04f23423622b0e1894446 (diff)
downloadforums-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.php127
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;
+ }
+}