1<?php 2 3namespace GeoIp2\Model; 4 5/** 6 * Model class for the data returned by GeoIP2 Country web service and database. 7 * 8 * The only difference between the City and Insights model classes is which 9 * fields in each record may be populated. See 10 * https://dev.maxmind.com/geoip/geoip2/web-services for more details. 11 * 12 * @property-read \GeoIp2\Record\Continent $continent Continent data for the 13 * requested IP address. 14 * @property-read \GeoIp2\Record\Country $country Country data for the requested 15 * IP address. This object represents the country where MaxMind believes the 16 * end user is located. 17 * @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind 18 * account. 19 * @property-read \GeoIp2\Record\Country $registeredCountry Registered country 20 * data for the requested IP address. This record represents the country 21 * where the ISP has registered a given IP block and may differ from the 22 * user's country. 23 * @property-read \GeoIp2\Record\RepresentedCountry $representedCountry 24 * Represented country data for the requested IP address. The represented 25 * country is used for things like military bases. It is only present when 26 * the represented country differs from the country. 27 * @property-read \GeoIp2\Record\Traits $traits Data for the traits of the 28 * requested IP address. 29 */ 30class Country extends AbstractModel 31{ 32 protected $continent; 33 protected $country; 34 protected $locales; 35 protected $maxmind; 36 protected $registeredCountry; 37 protected $representedCountry; 38 protected $traits; 39 40 /** 41 * @ignore 42 * 43 * @param mixed $raw 44 * @param mixed $locales 45 */ 46 public function __construct($raw, $locales = ['en']) 47 { 48 parent::__construct($raw); 49 50 $this->continent = new \GeoIp2\Record\Continent( 51 $this->get('continent'), 52 $locales 53 ); 54 $this->country = new \GeoIp2\Record\Country( 55 $this->get('country'), 56 $locales 57 ); 58 $this->maxmind = new \GeoIp2\Record\MaxMind($this->get('maxmind')); 59 $this->registeredCountry = new \GeoIp2\Record\Country( 60 $this->get('registered_country'), 61 $locales 62 ); 63 $this->representedCountry = new \GeoIp2\Record\RepresentedCountry( 64 $this->get('represented_country'), 65 $locales 66 ); 67 $this->traits = new \GeoIp2\Record\Traits($this->get('traits')); 68 69 $this->locales = $locales; 70 } 71} 72