/yii2-country

Country data for Yii2 using Intl extension and more.

Primary LanguagePHPMIT LicenseMIT

Country data for Yii2

The library provides access to Intl extension data for information about regions, sub-regions, countries, languages, locales, currencies and timezones. Also it has additional classes for information about continents, divisions, cities and measurement systems.

Latest Stable Version Build Status

The main classes:

  • Continent
  • Region
  • Subregion
  • Country (ActiveRecord)
  • Division (ActiveRecord)
  • City (ActiveRecord)
  • Locale
  • Language
  • Currency
  • Timezone
  • MeasurementSystem

Limitation

Since 1.1.0 requires Yii >= 2.0.13 and PHP >= 5.5

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist tigrov/yii2-country

or add

"tigrov/yii2-country": "~1.0"

to the require section of your composer.json file.

Apply migrations

yii migrate

Usage

The classes have access to static methods of Tigrov/intldata:

// Get list of codes.
ClassName::codes();

// Get a boolean indicating whether data has a code.
ClassName::has($code);

// Get list of names.
ClassName::names();

// Get name by code.
ClassName::name($code);

// E.g.
Country::names();
Currency::name('USD');
Locale::codes();
Timezone::has('America/New_York');

And some of the classes have additional static methods to get more information.

Also each of the classes has follow methods and attributes (perhaps magic):

// Create a model by code
ClassName::create($code);

// All models of a class
ClassName::all();

// Code of the model
$model->code;

// Name of the model
$model->name;

For example:

$continents = Continent::all();
$europe = Continent::create('EU');
$europe->code; // 'EU'
$europe->name; // 'Europe'

// List of countries
$europe->countries;

$us = Country::create('US');
$us->code; // 'US'
$us->name; // 'United States' (depends of the current locale)

// List of divisions (states)
$us->divisions;

// List of cities
$us->cities;

Addition

License

MIT