You are here

AbstractModel.php in Smart IP 7.2

Same filename and directory in other branches
  1. 6.2 includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php

Namespace

GeoIp2\Model

File

includes/vendor/geoip2/geoip2/src/Model/AbstractModel.php
View source
<?php

namespace GeoIp2\Model;

use GeoIp2\Compat\JsonSerializable;

/**
 * @ignore
 */
abstract class AbstractModel implements JsonSerializable {
  protected $raw;

  /**
   * @ignore
   */
  public function __construct($raw) {
    $this->raw = $raw;
  }

  /**
   * @ignore
   */
  protected function get($field) {
    if (isset($this->raw[$field])) {
      return $this->raw[$field];
    }
    else {
      if (preg_match('/^is_/', $field)) {
        return false;
      }
      else {
        return null;
      }
    }
  }

  /**
   * @ignore
   */
  public function __get($attr) {
    if ($attr != "instance" && property_exists($this, $attr)) {
      return $this->{$attr};
    }
    throw new \RuntimeException("Unknown attribute: {$attr}");
  }

  /**
   * @ignore
   */
  public function __isset($attr) {
    return $attr != "instance" && isset($this->{$attr});
  }
  public function jsonSerialize() {
    return $this->raw;
  }

}

Classes

Namesort descending Description
AbstractModel @ignore