冷码客 / world
提供国家、州和城市关系数据库。
v0.6
2018-04-08 05:57 UTC
Requires
- php: >=7.0
- laravel/framework: >=5.3.0
Requires (Dev)
- mockery/mockery: ~0.9
- phpunit/phpunit: ~5.0
README
本包专注于世界国家、地区和城市数据库,支持Laravel的本地化。
注意
原始包似乎已长时间未维护,因此我已分叉并稍作修改以修复一些问题
- utf8mb4中的迁移问题
- 将本地化代码zh-cn更改为zh以符合Laravel中的标准本地化定义
- 为laravel >= 5.5添加自动包发现
构思
本包中有5个主要对象。
- World: 地球世界。
- Continent: 7个大洲
- Country: 247个国家
- Division: 州/省等行政区域。
- City: 区域的最底层,一些城市直属于国家,一些直属于行政区域。
属性
常见属性
name
: 区域的通用名称。full_name
: 完整名称或官方名称code
: ISO-3166-1-alpha2/ISO-3166-2代码local_name
: 通用名称的翻译local_full_name
: 完整名称的翻译local_alias
: 不同语言中的别名local_abbr
: 缩写
国家特定属性
emoji
: 国旗表情符号capital
: 该国家的首都code_alpha3
: ISO-3166-1-alpha3代码currency_code
: ISO-4177货币代码,例如USD、CNYcurrency_name
: ISO-4177货币名称local_currency_name
: 本地化货币名称
示例
use Khsing\World\World; $china = World::getByCode('cn'); $china->setLocale('zh'); $china->name; // China $china->local_name; // 中国 $china->full_name; // People's Republic of China $china->local_full_name; // 中华人民共和国 $china->emoji; // 🇨🇳 $china->callingcode; // 86 $china->code; // CN $china->code_alpha3; // CHN $china->has_division; // true $china->currency_code; // CNY $china->currency_name; // Yuan Renminbi $china->local_currency_name; // 人民币
本地化
目前,仅支持英语(默认和回退)和中文简体 zh-cn
。区域设置遵循Laravel项目的设置,在config/app.php
中。
设置
composer require
composer require coldcoder/world
对于Laravel < 5.5
- 将服务提供者添加到
config/app.php
'providers' => [ // ... Coldcoder\World\WorldServiceProvider::class, ]
- 发布和初始化
php artisan vendor:publish --force --provider="Coldcoder\World\WorldServiceProvider" composer dump-autoload php artisan world:init
用法
- 获取所有大洲
use Coldcoder\World\World; World::Continents()
- 获取所有国家
use Coldcoder\World\World; World::Countries()
- 按代码获取国家
use Coldcoder\World\World; Country::getByCode('cn');
- 获取属于一个大洲的国家
use Coldcoder\World\Models\Continent; $asia = Continent::getByCode('AS'); $countries = $asia->countries()->get(); // or use children method $countries = $asia->children();
- 获取大洲或父级
$china = Country::getByCode('cn'); $asia = $china->parent();
- 通过国家获取行政区域/州/省
$china = Country::getByCode('cn'); $provinces = $china->divisions()->get() // or use children method $provinces = $china->children();
- 通过国家或行政区域获取城市
$china = Country::getByCode('cn'); // check has_division to determine next level is division or city. $china->has_division; // true, otherwise is false $regsions = $china->children();
关于
本包采用MIT许可协议发布。如果您有任何问题或建议,请随时提交问题,或通过电子邮件联系我 Guixing<khsing.cn(AT)gmail.com>。
祝您拥有美好的一天。