Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 4.2.x will end 22 April 2024 (12 months).
  • Bug fixes for security issues in 4.2.x will end 7 October 2024 (18 months).
  • PHP version: minimum PHP 8.0.0 Note: minimum PHP version has increased since Moodle 4.1. PHP 8.1.x is supported too.
<?php

declare(strict_types=1);

namespace GeoIp2\Model;

/**
 * Model class for the data returned by GeoIP2 Country web service and database.
 *
< * The only difference between the City and Insights model classes is which < * fields in each record may be populated. See < * https://dev.maxmind.com/geoip/geoip2/web-services for more details.
> * See https://dev.maxmind.com/geoip/docs/web-services?lang=en for more details.
* * @property-read \GeoIp2\Record\Continent $continent Continent data for the * requested IP address. * @property-read \GeoIp2\Record\Country $country Country data for the requested * IP address. This object represents the country where MaxMind believes the * end user is located. * @property-read \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind * account. * @property-read \GeoIp2\Record\Country $registeredCountry Registered country * data for the requested IP address. This record represents the country * where the ISP has registered a given IP block and may differ from the * user's country. * @property-read \GeoIp2\Record\RepresentedCountry $representedCountry * Represented country data for the requested IP address. The represented * country is used for things like military bases. It is only present when * the represented country differs from the country. * @property-read \GeoIp2\Record\Traits $traits Data for the traits of the * requested IP address.
> * @property-read array $raw The raw data from the web service.
*/ class Country extends AbstractModel {
> /** protected $continent; > * @var \GeoIp2\Record\Continent protected $country; > */
protected $locales;
> protected $maxmind; > /** protected $registeredCountry; > * @var \GeoIp2\Record\Country protected $representedCountry; > */
protected $traits;
> > /** /** > * @var array<string> * @ignore > */
*/
> public function __construct(array $raw, array $locales = ['en']) > /** { > * @var \GeoIp2\Record\MaxMind parent::__construct($raw); > */
> $this->continent = new \GeoIp2\Record\Continent( > /** $this->get('continent'), > * @var \GeoIp2\Record\Country $locales > */
);
> $this->country = new \GeoIp2\Record\Country( > /** $this->get('country'), > * @var \GeoIp2\Record\RepresentedCountry $locales > */
);
> $this->maxmind = new \GeoIp2\Record\MaxMind($this->get('maxmind')); > /** $this->registeredCountry = new \GeoIp2\Record\Country( > * @var \GeoIp2\Record\Traits $this->get('registered_country'), > */
$locales ); $this->representedCountry = new \GeoIp2\Record\RepresentedCountry( $this->get('represented_country'), $locales ); $this->traits = new \GeoIp2\Record\Traits($this->get('traits')); $this->locales = $locales; } }