aboutsummaryrefslogtreecommitdiffstats
path: root/public/system/engine/proxy.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/system/engine/proxy.php')
-rw-r--r--public/system/engine/proxy.php54
1 files changed, 54 insertions, 0 deletions
diff --git a/public/system/engine/proxy.php b/public/system/engine/proxy.php
new file mode 100644
index 0000000..b0a21d0
--- /dev/null
+++ b/public/system/engine/proxy.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ * @package OpenCart
+ * @author Daniel Kerr
+ * @copyright Copyright (c) 2005 - 2017, OpenCart, Ltd. (https://www.opencart.com/)
+ * @license https://opensource.org/licenses/GPL-3.0
+ * @link https://www.opencart.com
+*/
+
+/**
+* Proxy class
+*/
+class Proxy {
+ /**
+ *
+ *
+ * @param string $key
+ */
+ public function __get($key) {
+ return $this->{$key};
+ }
+
+ /**
+ *
+ *
+ * @param string $key
+ * @param string $value
+ */
+ public function __set($key, $value) {
+ $this->{$key} = $value;
+ }
+
+ public function __call($key, $args) {
+ $arg_data = array();
+
+ $args = func_get_args();
+
+ foreach ($args as $arg) {
+ if ($arg instanceof Ref) {
+ $arg_data[] =& $arg->getRef();
+ } else {
+ $arg_data[] =& $arg;
+ }
+ }
+
+ if (isset($this->{$key})) {
+ return call_user_func_array($this->{$key}, $arg_data);
+ } else {
+ $trace = debug_backtrace();
+
+ exit('<b>Notice</b>: Undefined property: Proxy::' . $key . ' in <b>' . $trace[1]['file'] . '</b> on line <b>' . $trace[1]['line'] . '</b>');
+ }
+ }
+} \ No newline at end of file