tigrov / yii2-country
Country data for Yii2 using Intl extension and more.
Installs: 1 055
Dependents: 0
Suggesters: 0
Security: 0
Stars: 15
Watchers: 5
Forks: 2
Open Issues: 1
Type:yii2-extension
Requires
- php: >=5.5.0
- tigrov/intldata: ~1.0
- yiisoft/yii2: ~2.0.13
Suggests
- rinvex/countries: Allows access to additional data of countries. For PHP >=7.0 only.
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.
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
- For additional information about countries (flags, codes, borders and other) use a library
https://github.com/rinvex/countries$country->rinvex
or https://github.com/antonioribeiro/countries - For more information about Intl extension data see
https://github.com/Tigrov/intldata
http://intl.rmcreative.ru/tables?locale=en_US
http://php.net/manual/book.intl.php