PluginProbe
User Access Manager / 2.3.1
User Access Manager v2.3.1
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.3.1, at src/Config/ConfigParameter.php

51 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace UserAccessManager\Config;
6
7 use Exception;
8
9 abstract class ConfigParameter implements ConfigParameterInterface
10 {
11 protected mixed $defaultValue = null;
12 protected mixed $value = null;
13
14 /**
15 * @throws Exception
16 */
17 public function __construct(
18 protected string $id,
19 mixed $defaultValue = null
20 ) {
21 $this->validateValue($defaultValue);
22 $this->defaultValue = $defaultValue;
23 }
24
25 public function getId(): string
26 {
27 return $this->id;
28 }
29
30 /**
31 * @throws Exception
32 */
33 protected function validateValue($value): void
34 {
35 if ($this->isValidValue($value) === false) {
36 throw new Exception("Wrong value '$value' type given for '$this->id'.'");
37 }
38 }
39
40 public function setValue(mixed $value): void
41 {
42 $this->isValidValue($value);
43 $this->value = $value;
44 }
45
46 public function getValue(): mixed
47 {
48 return ($this->value === null) ? $this->defaultValue : $this->value;
49 }
50 }
51