1 <?php
2
3 namespace GeoIp2\Record;
4
5 abstract class AbstractPlaceRecord extends AbstractRecord
6 {
7 private $locales;
8
9 10 11
12 public function __construct($record, $locales = array('en'))
13 {
14 $this->locales = $locales;
15 parent::__construct($record);
16 }
17
18 19 20
21 public function __get($attr)
22 {
23 if ($attr == 'name') {
24 return $this->name();
25 } else {
26 return parent::__get($attr);
27 }
28 }
29
30 31 32
33 public function __isset($attr)
34 {
35 if ($attr == 'name') {
36 return $this->firstSetNameLocale() == null ? false : true;
37 } else {
38 return parent::__isset($attr);
39 }
40 }
41
42 private function name()
43 {
44 $locale = $this->firstSetNameLocale();
45 return $locale === null ? null : $this->names[$locale];
46 }
47
48 private function firstSetNameLocale()
49 {
50 foreach ($this->locales as $locale) {
51 if (isset($this->names[$locale])) {
52 return $locale;
53 }
54 }
55 return null;
56 }
57 }
58