You are here

class City in Smart IP 7.2

Same name in this branch
  1. 7.2 includes/vendor/geoip2/geoip2/src/Model/City.php \GeoIp2\Model\City
  2. 7.2 includes/vendor/geoip2/geoip2/src/Record/City.php \GeoIp2\Record\City
Same name and namespace in other branches
  1. 6.2 includes/vendor/geoip2/geoip2/src/Model/City.php \GeoIp2\Model\City

Model class for the data returned by GeoIP2 City web service and database.

The only difference between the City and Insights model classes is which fields in each record may be populated. See http://dev.maxmind.com/geoip/geoip2/web-services more details.

@property \GeoIp2\Record\City $city City data for the requested IP address.

@property \GeoIp2\Record\Continent $continent Continent data for the requested IP address.

@property \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 \GeoIp2\Record\Location $location Location data for the requested IP address.

@property \GeoIp2\Record\Postal $postal Postal data for the requested IP address.

@property \GeoIp2\Record\MaxMind $maxmind Data related to your MaxMind account.

@property \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 \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 array $subdivisions An array of {@link \GeoIp2\Record\Subdivision} objects representing the country subdivisions for the requested IP address. The number and type of subdivisions varies by country, but a subdivision is typically a state, province, county, etc. Subdivisions are ordered from most general (largest) to most specific (smallest). If the response did not contain any subdivisions, this method returns an empty array.

@property \GeoIp2\Record\Subdivision $mostSpecificSubdivision An object representing the most specific subdivision returned. If the response did not contain any subdivisions, this method returns an empty {@link \GeoIp2\Record\Subdivision} object.

@property \GeoIp2\Record\Traits $traits Data for the traits of the requested IP address.

Hierarchy

  • class \GeoIp2\Model\AbstractModel implements \GeoIp2\Compat\JsonSerializable

Expanded class hierarchy of City

7 string references to 'City'
Client::city in includes/vendor/geoip2/geoip2/src/WebService/Client.php
This method calls the GeoIP2 Precision: City service.
Reader::city in includes/vendor/geoip2/geoip2/src/Database/Reader.php
This method returns a GeoIP2 City model.
SmartIPViewsBridgeTestHelper::setUp in modules/smart_ip_views_bridge/tests/smart_ip_views_bridge.test
Sets up a Drupal site for running functional and integration tests.
smart_ip_admin_settings in includes/smart_ip.admin.inc
Smart IP administration settings.
smart_ip_get_bin_source_filename in ./smart_ip.module
Helper function for grabbing MaxMind GeoIP Legacy's binary archive filename.

... See full list

File

includes/vendor/geoip2/geoip2/src/Model/City.php, line 57

Namespace

GeoIp2\Model
View source
class City extends Country {

  /**
   * @ignore
   */
  protected $city;

  /**
   * @ignore
   */
  protected $location;

  /**
   * @ignore
   */
  protected $postal;

  /**
   * @ignore
   */
  protected $subdivisions = array();

  /**
   * @ignore
   */
  public function __construct($raw, $locales = array(
    'en',
  )) {
    parent::__construct($raw, $locales);
    $this->city = new \GeoIp2\Record\City($this
      ->get('city'), $locales);
    $this->location = new \GeoIp2\Record\Location($this
      ->get('location'));
    $this->postal = new \GeoIp2\Record\Postal($this
      ->get('postal'));
    $this
      ->createSubdivisions($raw, $locales);
  }
  private function createSubdivisions($raw, $locales) {
    if (!isset($raw['subdivisions'])) {
      return;
    }
    foreach ($raw['subdivisions'] as $sub) {
      array_push($this->subdivisions, new \GeoIp2\Record\Subdivision($sub, $locales));
    }
  }

  /**
   * @ignore
   */
  public function __get($attr) {
    if ($attr == 'mostSpecificSubdivision') {
      return $this
        ->{$attr}();
    }
    else {
      return parent::__get($attr);
    }
  }
  private function mostSpecificSubdivision() {
    return empty($this->subdivisions) ? new \GeoIp2\Record\Subdivision(array(), $this->locales) : end($this->subdivisions);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AbstractModel::$raw protected property
AbstractModel::get protected function @ignore
AbstractModel::jsonSerialize public function
AbstractModel::__isset public function @ignore
City::$city protected property @ignore
City::$location protected property @ignore
City::$postal protected property @ignore
City::$subdivisions protected property @ignore
City::createSubdivisions private function
City::mostSpecificSubdivision private function
City::__construct public function @ignore Overrides Country::__construct
City::__get public function @ignore Overrides AbstractModel::__get
Country::$continent protected property
Country::$country protected property
Country::$locales protected property
Country::$maxmind protected property
Country::$registeredCountry protected property
Country::$representedCountry protected property
Country::$traits protected property