abstract class AbstractRecord in Smart IP 7.2
Same name and namespace in other branches
- 6.2 includes/vendor/geoip2/geoip2/src/Record/AbstractRecord.php \GeoIp2\Record\AbstractRecord
Hierarchy
- class \GeoIp2\Record\AbstractRecord implements \GeoIp2\Compat\JsonSerializable
Expanded class hierarchy of AbstractRecord
File
- includes/
vendor/ geoip2/ geoip2/ src/ Record/ AbstractRecord.php, line 7
Namespace
GeoIp2\RecordView source
abstract class AbstractRecord implements JsonSerializable {
private $record;
/**
* @ignore
*/
public function __construct($record) {
$this->record = isset($record) ? $record : array();
}
/**
* @ignore
*/
public function __get($attr) {
// XXX - kind of ugly but greatly reduces boilerplate code
$key = $this
->attributeToKey($attr);
if ($this
->__isset($attr)) {
return $this->record[$key];
}
elseif ($this
->validAttribute($attr)) {
if (preg_match('/^is_/', $key)) {
return false;
}
else {
return null;
}
}
else {
throw new \RuntimeException("Unknown attribute: {$attr}");
}
}
public function __isset($attr) {
return $this
->validAttribute($attr) && isset($this->record[$this
->attributeToKey($attr)]);
}
private function attributeToKey($attr) {
return strtolower(preg_replace('/([A-Z])/', '_\\1', $attr));
}
private function validAttribute($attr) {
return in_array($attr, $this->validAttributes);
}
public function jsonSerialize() {
return $this->record;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AbstractRecord:: |
private | property | ||
AbstractRecord:: |
private | function | ||
AbstractRecord:: |
public | function | ||
AbstractRecord:: |
private | function | ||
AbstractRecord:: |
public | function | @ignore | 1 |
AbstractRecord:: |
public | function | @ignore | 1 |
AbstractRecord:: |
public | function |