aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/migration/tools/config.php
blob: 965ba1d13686c76f4f4de2950d847e16b79a706a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php
/**
*
* @package migration
* @copyright (c) 2012 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License v2
*
*/

class phpbb_db_migration_tools_config extends phpbb_db_migration_tools_base
{
	/**
	* Config Exists
	*
	* This function is to check to see if a config variable exists or if it does not.
	*
	* @param string $config_name The name of the config setting you wish to check for.
	*
	* @return bool true/false if config exists
	*/
	public function exists($config_name)
	{
		return (bool) $this->config->offsetExists($config_name);
	}

	/**
	* Config Add
	*
	* This function allows you to add a config setting.
	*
	* @param string $config_name The name of the config setting you would like to add
	* @param mixed $config_value The value of the config setting
	* @param bool $is_dynamic True if it is dynamic (changes very often) and should not be stored in the cache, false if not.
	*/
	public function add($config_name, $config_value = '', $is_dynamic = false)
	{
		if ($this->config_exists($config_name))
		{
			throw new phpbb_db_migration_exception('CONFIG_ALREADY_EXISTS', $config_name);
		}

		$this->config->set($config_name, $config_value, $is_dynamic);

		return false;
	}

	/**
	* Config Update
	*
	* This function allows you to update an existing config setting.
	*
	* @param string $config_name The name of the config setting you would like to update
	* @param mixed $config_value The value of the config setting
	*/
	public function update($config_name, $config_value = '')
	{
		if (!$this->config_exists($config_name))
		{
			throw new phpbb_db_migration_exception('CONFIG_NOT_EXIST', $config_name);
		}

		$this->config->set($config_name, $config_value);

		return false;
	}

	/**
	* Config Update If Equals
	*
	* This function allows you to update a config setting if the first argument equal to the current config value
	*
	* @param bool $compare If equal to the current config value, will be updated to the new config value, otherwise not
	* @param string $config_name The name of the config setting you would like to update
	* @param mixed $config_value The value of the config setting
	*/
	public function update_if_equals($compare, $config_name, $config_value = '')
	{
		if (!$this->config_exists($config_name))
		{
			throw new phpbb_db_migration_exception('CONFIG_NOT_EXIST', $config_name);
		}

		$this->config->set_atomic($config_name, $compare, $config_value);

		return false;
	}

	/**
	* Config Remove
	*
	* This function allows you to remove an existing config setting.
	*
	* @param string $config_name The name of the config setting you would like to remove
	*/
	public function remove($config_name)
	{
		if (!$this->config_exists($config_name))
		{
			throw new phpbb_db_migration_exception('CONFIG_NOT_EXIST', $config_name);
		}

		$this->config->delete($config_name);

		return false;
	}
}