rocketfellows/iso-standard-3166-factory

v1.0.0 2023-01-14 13:05 UTC

This package is not auto-updated.

Last update: 2024-09-22 19:29:49 UTC


README

Code Coverage Badge

该组件提供根据ISO-3166标准创建国家的工厂,通过

  • 代码(alpha2,alpha3,数字代码)
  • 全英文名称

工厂创建arslanimamutdinov\ISOStandard3166\Country的实例。

安装

composer require rocketfellows/iso-standard-3166-factory

通过代码创建国家

注意:通过代码创建不区分大小写。

示例:通过alpha2,alpha3,数字代码创建国家

$factory = new CountryFactory();

$factory->createByCode('AT');   // creates by alpha2 code
$factory->createByCode('at');   // creates by alpha2 code in lower case
$factory->createByCode('AUT');  // creates by alpha3
$factory->createByCode('aut');  // creates by alpha3 in lower case
$factory->createByCode('040');  // creates by numeric code

上述示例将返回

object(arslanimamutdinov\ISOStandard3166\Country)#3 (4) {
["name":"arslanimamutdinov\ISOStandard3166\Country":private]=>
string(7) "Austria"
["alpha2":"arslanimamutdinov\ISOStandard3166\Country":private]=>
string(2) "AT"
["alpha3":"arslanimamutdinov\ISOStandard3166\Country":private]=>
string(3) "AUT"
["numericCode":"arslanimamutdinov\ISOStandard3166\Country":private]=>
string(3) "040"
}

如果代码为空或未知,工厂将抛出

  • EmptyCountryCodeException异常
  • UnknownCountryCodeException异常

通过英文名称创建国家

注意:通过代码创建区分大小写,并且需要全名。

示例:通过名称创建国家

$factory = new CountryFactory();

$factory->createByName('Austria');

上述示例将返回

object(arslanimamutdinov\ISOStandard3166\Country)#6 (4) {
  ["name":"arslanimamutdinov\ISOStandard3166\Country":private]=>
  string(7) "Austria"
  ["alpha2":"arslanimamutdinov\ISOStandard3166\Country":private]=>
  string(2) "AT"
  ["alpha3":"arslanimamutdinov\ISOStandard3166\Country":private]=>
  string(3) "AUT"
  ["numericCode":"arslanimamutdinov\ISOStandard3166\Country":private]=>
  string(3) "040"
}

如果名称为空或未知,工厂将抛出

  • UnknownCountryNameException异常
  • EmptyCountryNameException异常

贡献

欢迎提交拉取请求。如果有重大变更,请先创建一个问题进行讨论。

请确保适当地更新测试。