1: | <?php |
2: | /** |
3: | * @package OpenCart |
4: | * |
5: | * @author Daniel Kerr |
6: | * @copyright Copyright (c) 2005 - 2022, OpenCart, Ltd. (https://www.opencart.com/) |
7: | * @license https://opensource.org/licenses/GPL-3.0 |
8: | * |
9: | * @see https://www.opencart.com |
10: | */ |
11: | |
12: | /** |
13: | * Model class |
14: | */ |
15: | namespace Opencart\System\Engine; |
16: | /** |
17: | * Class Model |
18: | * |
19: | * @mixin \Opencart\System\Engine\Registry |
20: | */ |
21: | class Model { |
22: | /** |
23: | * @var \Opencart\System\Engine\Registry |
24: | */ |
25: | protected \Opencart\System\Engine\Registry $registry; |
26: | |
27: | /** |
28: | * Constructor |
29: | * |
30: | * @param \Opencart\System\Engine\Registry $registry |
31: | */ |
32: | public function __construct(\Opencart\System\Engine\Registry $registry) { |
33: | $this->registry = $registry; |
34: | } |
35: | |
36: | /** |
37: | * __get |
38: | * |
39: | * @param string $key |
40: | * |
41: | * @return object |
42: | */ |
43: | public function __get(string $key): object { |
44: | if ($this->registry->has($key)) { |
45: | return $this->registry->get($key); |
46: | } else { |
47: | throw new \Exception('Error: Could not call registry key ' . $key . '!'); |
48: | } |
49: | } |
50: | |
51: | /** |
52: | * __set |
53: | * |
54: | * @param string $key |
55: | * @param object $value |
56: | * |
57: | * @return void |
58: | */ |
59: | public function __set(string $key, object $value): void { |
60: | $this->registry->set($key, $value); |
61: | } |
62: | |
63: | /** |
64: | * __isset |
65: | * |
66: | * https://www.php.net/manual/en/language.oop5.overloading.php#object.set |
67: | * |
68: | * @param string $key |
69: | * |
70: | * @return bool |
71: | */ |
72: | public function __isset(string $key): bool { |
73: | return $this->registry->has($key); |
74: | } |
75: | } |
76: |