PluginProbe
User Access Manager / 2.2.6
User Access Manager v2.2.6
2.3.20 2.3.19 2.3.18 2.3.17 2.3.16 2.3.15 2.3.14 2.3.13 trunk 0.6 0.6.1 0.6.2 0.7 0.7 Beta 0.7.0.1 0.8 0.8.0.1 0.8.0.2 0.9 0.9.1 0.9.1.1 0.9.1.2 0.9.1.3 0.9.1.4 1.0 All 136 releases
user-access-manager / src / Config / ConfigParameter.php

ConfigParameter.php in User Access Manager 2.2.6, at src/Config/ConfigParameter.php

98 lines 2.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * ConfigParameter.php
4 *
5 * The ConfigParameter class file.
6 *
7 * PHP versions 5
8 *
9 * @author Alexander Schneider <alexanderschneider85@gmail.com>
10 * @copyright 2008-2017 Alexander Schneider
11 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2
12 * @version SVN: $id$
13 * @link http://wordpress.org/extend/plugins/user-access-manager/
14 */
15
16 declare(strict_types=1);
17
18 namespace UserAccessManager\Config;
19
20 use Exception;
21
22 /**
23 * Class ConfigParameter
24 *
25 * @package UserAccessManager\Config
26 */
27 abstract class ConfigParameter implements ConfigParameterInterface
28 {
29 /**
30 * @var string
31 */
32 protected $id;
33
34 /**
35 * @var mixed
36 */
37 protected $defaultValue = null;
38
39 /**
40 * @var mixed
41 */
42 protected $value = null;
43
44 /**
45 * ConfigParameter constructor.
46 * @param string $id
47 * @param mixed $defaultValue
48 * @throws Exception
49 */
50 public function __construct(string $id, $defaultValue = null)
51 {
52 $this->id = $id;
53
54 $this->validateValue($defaultValue);
55 $this->defaultValue = $defaultValue;
56 }
57
58 /**
59 * Returns the id.
60 * @return string
61 */
62 public function getId(): string
63 {
64 return $this->id;
65 }
66
67 /**
68 * Checks the value type and throws an exception if the value isn't the required type.
69 * @param mixed $value
70 * @throws Exception
71 */
72 protected function validateValue($value)
73 {
74 if ($this->isValidValue($value) === false) {
75 throw new Exception("Wrong value '{$value}' type given for '{$this->id}'.'");
76 }
77 }
78
79 /**
80 * Sets the current value.
81 * @param mixed $value
82 */
83 public function setValue($value)
84 {
85 $this->isValidValue($value);
86 $this->value = $value;
87 }
88
89 /**
90 * Returns the current parameter value.
91 * @return mixed
92 */
93 public function getValue()
94 {
95 return ($this->value === null) ? $this->defaultValue : $this->value;
96 }
97 }
98