tigrov/yii2-country

Country data for Yii2 using Intl extension and more.

Installs: 525

Dependents: 0

Suggesters: 0

Stars: 8

Watchers: 3

Forks: 1

Open Issues: 0

Type:yii2-extension

1.1.11 2019-07-19 15:19 UTC

README

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.

Configuration

Once the extension is installed, configure migrations in config.php:

return [
    // ...
    'controllerMap' => [
        'migrate' => [
            'class' => 'yii\console\controllers\MigrationController',
        ],
    ],
    // ...
];

and 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