aboutsummaryrefslogtreecommitdiff
path: root/includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php')
-rw-r--r--includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php67
1 files changed, 67 insertions, 0 deletions
diff --git a/includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php b/includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php
new file mode 100644
index 0000000..d4b9b70
--- /dev/null
+++ b/includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php
@@ -0,0 +1,67 @@
+<?php
+
+namespace GeoIp2\Model;
+
+/**
+ * @ignore
+ */
+abstract class AbstractModel implements \JsonSerializable
+{
+ protected $raw;
+
+ /**
+ * @ignore
+ *
+ * @param mixed $raw
+ */
+ public function __construct($raw)
+ {
+ $this->raw = $raw;
+ }
+
+ /**
+ * @ignore
+ *
+ * @param mixed $field
+ */
+ protected function get($field)
+ {
+ if (isset($this->raw[$field])) {
+ return $this->raw[$field];
+ }
+ if (preg_match('/^is_/', $field)) {
+ return false;
+ }
+
+ return null;
+ }
+
+ /**
+ * @ignore
+ *
+ * @param mixed $attr
+ */
+ public function __get($attr)
+ {
+ if ($attr !== 'instance' && property_exists($this, $attr)) {
+ return $this->$attr;
+ }
+
+ throw new \RuntimeException("Unknown attribute: $attr");
+ }
+
+ /**
+ * @ignore
+ *
+ * @param mixed $attr
+ */
+ public function __isset($attr)
+ {
+ return $attr !== 'instance' && isset($this->$attr);
+ }
+
+ public function jsonSerialize()
+ {
+ return $this->raw;
+ }
+}