4e23b6b207
Geoip 2.4.2 -> 2.6.0 MaxMind 1.1.0 -> 1.1.3
67 lines
1.2 KiB
PHP
67 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace GeoIp2\Record;
|
|
|
|
abstract class AbstractPlaceRecord extends AbstractRecord
|
|
{
|
|
private $locales;
|
|
|
|
/**
|
|
* @ignore
|
|
*
|
|
* @param mixed $record
|
|
* @param mixed $locales
|
|
*/
|
|
public function __construct($record, $locales = ['en'])
|
|
{
|
|
$this->locales = $locales;
|
|
parent::__construct($record);
|
|
}
|
|
|
|
/**
|
|
* @ignore
|
|
*
|
|
* @param mixed $attr
|
|
*/
|
|
public function __get($attr)
|
|
{
|
|
if ($attr === 'name') {
|
|
return $this->name();
|
|
}
|
|
|
|
return parent::__get($attr);
|
|
}
|
|
|
|
/**
|
|
* @ignore
|
|
*
|
|
* @param mixed $attr
|
|
*/
|
|
public function __isset($attr)
|
|
{
|
|
if ($attr === 'name') {
|
|
return $this->firstSetNameLocale() === null ? false : true;
|
|
}
|
|
|
|
return parent::__isset($attr);
|
|
}
|
|
|
|
private function name()
|
|
{
|
|
$locale = $this->firstSetNameLocale();
|
|
|
|
return $locale === null ? null : $this->names[$locale];
|
|
}
|
|
|
|
private function firstSetNameLocale()
|
|
{
|
|
foreach ($this->locales as $locale) {
|
|
if (isset($this->names[$locale])) {
|
|
return $locale;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|