Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
config.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 namespace phpbb\db\migration\tool;
015
016 /**
017 * Migration config tool
018 */
019 class config implements \phpbb\db\migration\tool\tool_interface
020 {
021 /** @var \phpbb\config\config */
022 protected $config;
023
024 /**
025 * Constructor
026 *
027 * @param \phpbb\config\config $config
028 */
029 public function __construct(\phpbb\config\config $config)
030 {
031 $this->config = $config;
032 }
033
034 /**
035 * {@inheritdoc}
036 */
037 public function get_name()
038 {
039 return 'config';
040 }
041
042 /**
043 * Add a config setting.
044 *
045 * @param string $config_name The name of the config setting
046 * you would like to add
047 * @param mixed $config_value The value of the config setting
048 * @param bool $is_dynamic True if it is dynamic (changes very often)
049 * and should not be stored in the cache, false if not.
050 * @return null
051 */
052 public function add($config_name, $config_value, $is_dynamic = false)
053 {
054 if (isset($this->config[$config_name]))
055 {
056 return;
057 }
058
059 $this->config->set($config_name, $config_value, !$is_dynamic);
060 }
061
062 /**
063 * Update an existing config setting.
064 *
065 * @param string $config_name The name of the config setting you would
066 * like to update
067 * @param mixed $config_value The value of the config setting
068 * @return null
069 * @throws \phpbb\db\migration\exception
070 */
071 public function update($config_name, $config_value)
072 {
073 if (!isset($this->config[$config_name]))
074 {
075 throw new \phpbb\db\migration\exception('CONFIG_NOT_EXIST', $config_name);
076 }
077
078 $this->config->set($config_name, $config_value);
079 }
080
081 /**
082 * Update a config setting if the first argument equal to the
083 * current config value
084 *
085 * @param string $compare If equal to the current config value, will be
086 * updated to the new config value, otherwise not
087 * @param string $config_name The name of the config setting you would
088 * like to update
089 * @param mixed $config_value The value of the config setting
090 * @return null
091 * @throws \phpbb\db\migration\exception
092 */
093 public function update_if_equals($compare, $config_name, $config_value)
094 {
095 if (!isset($this->config[$config_name]))
096 {
097 throw new \phpbb\db\migration\exception('CONFIG_NOT_EXIST', $config_name);
098 }
099
100 $this->config->set_atomic($config_name, $compare, $config_value);
101 }
102
103 /**
104 * Remove an existing config setting.
105 *
106 * @param string $config_name The name of the config setting you would
107 * like to remove
108 * @return null
109 */
110 public function remove($config_name)
111 {
112 if (!isset($this->config[$config_name]))
113 {
114 return;
115 }
116
117 $this->config->delete($config_name);
118 }
119
120 /**
121 * {@inheritdoc}
122 */
123 public function reverse()
124 {
125 $arguments = func_get_args();
126 $original_call = array_shift($arguments);
127
128 $call = false;
129 switch ($original_call)
130 {
131 case 'add':
132 $call = 'remove';
133 break;
134
135 case 'remove':
136 $call = 'add';
137 if (count($arguments) == 1)
138 {
139 $arguments[] = '';
140 }
141 break;
142
143 case 'update_if_equals':
144 $call = 'update_if_equals';
145
146 // Set to the original value if the current value is what we compared to originally
147 $arguments = array(
148 $arguments[2],
149 $arguments[1],
150 $arguments[0],
151 );
152 break;
153
154 case 'reverse':
155 // Reversing a reverse is just the call itself
156 $call = array_shift($arguments);
157 break;
158 }
159
160 if ($call)
161 {
162 return call_user_func_array(array(&$this, $call), $arguments);
163 }
164 }
165 }
166