steefdw / standards-enums
“标准枚举”包提供了一种简单且一致的方式来使用枚举与国家、语言、货币和地区进行交互。每个枚举都包含访问相关信息的各种方法,如名称、国旗、描述等。此外,还提供了辅助方法,以便轻松获取所有可能的值或按给定语言的名称对其进行排序。这些方法可以与所有枚举类一起使用,无论它们代表的是语言、国家、货币还是地区。
v0.1.4
2024-09-19 14:22 UTC
Requires
- php: >=8.1
Requires (Dev)
- ext-mbstring: *
- friendsofphp/php-cs-fixer: ^3.11
- pdepend/pdepend: 2.14.0
- phpmd/phpmd: ^2.13
- phpstan/phpstan: ^1.10.13
- phpunit/phpunit: ^9.5.25
- squizlabs/php_codesniffer: ^3.7.1
README
“标准枚举”包提供了一种简单且一致的方式来使用枚举与国家、语言、货币和地区进行交互。
每个枚举都包含访问相关信息的各种方法,如名称、国旗、描述等。此外,还提供了辅助方法,以便轻松获取所有可能的值或按给定语言的名称对其进行排序。这些方法可以与所有枚举类一起使用,无论它们代表的是语言、国家、货币还是地区。
“标准枚举”提供访问各种ISO标准列表的权限
本包中的枚举 | ISO标准 |
---|---|
国家 | ISO 3166-1 |
货币 | ISO 4217 |
语言 | ISO 639 |
地区 | (非ISO) |
本包中的大部分代码都是自动生成的,数据来源于https://salsa.debian.org/iso-codes-team/iso-codes。
文档
- 完整文档:[https://steefdw.gitlab.io/standards-enums](https://steefdw.gitlab.io/standards-enums)
- 简短文档:本README文件。
安装
composer require steefdw/standards-enums
用法
国家示例
$country = CountryAlpha2::tryFrom('nl'); // CountryAlpha2::NL
$countryName = $country->getName()->value; // 'Netherlands'
$countryAlpha2 = $countryName->getAlpha2()->value; // 'nl'
$countryAlpha3 = $countryAlpha2->getAlpha3()->value; // 'NLD'
$countryFlag = $countryAlpha3->getFlag()->value; // '🇳🇱'
$countryNumber = $countryFlag->getNumeric()->value; // '528'
$countryCurrencies = $country->getCurrencies(); // ['EUR' => CurrencyName::EUR]
// these methods work for all country Enums
货币示例
$currency = CurrencyName::tryFrom('Euro'); // CurrencyName::EUR
$currencyName = $currency->getName()->value; // 'Euro'
$currencyAlpha3 = $currency->getAlpha3()->value; // 'EUR'
$currencyNumber = $currency->getNumeric()->value; // '978'
$currencyCountries = $currency->getCountries(); // [
// 'AD' => CountryName::AD, // Andorra
// 'AT' => CountryName::AT, // Austria
// 'BE' => CountryName::BE, // Belgium
// ...]
// these methods work for all currency Enums
语言示例
$language = LanguageAlpha2::tryFrom('nl'); // LanguageAlpha2::NLD
$languageName = $language->getName()->value; // 'Dutch; Flemish'
$languageAlpha2 = $languageName->getAlpha2()->value; // 'nl'
$languageAlpha3 = $languageAlpha2->getAlpha3()->value; // 'nld'
// these methods work for all language Enums
地区示例
$locale = LocaleCode::tryFromName('nl_BE'); // LocaleCode::NL_BE
$description = $locale->getDescription(); // LocaleDescription::NL_BE
$description->value; // 'Dutch (Belgium)'
$locale->getLanguage()->value; // 'Dutch; Flemish'
$locale->getCountry()->value; // 'Belgium'
// these methods work for all locale Enums
有关更多信息,请参阅用法页面。
请参阅文档的这些部分,以获取有关如何使用每种枚举类型的更详细信息。
测试
composer test
或
make test
贡献
- 确保代码验证成功。您可以使用
make validate
运行它。 - 确保所有测试都成功。您可以使用
make test
运行它们。 - 确保所有代码都经过测试。
许可证
MIT许可证。请参阅许可证文件以获取更多信息。