wapmorgan/yii2-inflection
Composer 安装命令:
composer require wapmorgan/yii2-inflection
包简介
Inflection extension for Yii2. Support for English / Russian languages to inflect words / names / numbers / money / date&time.
关键字:
README 文档
README
Inflection extension for Yii2. Support for English / Russian languages to inflect words / names / numbers / money / date&time.
Features
- Pluralize word with number:
en:Yii::$app->inflection->pluralize(2, 'item')=>2 itemsru:Yii::$app->inflection->pluralize(2, 'элемент')=>2 элемента
- Inflect names to relational cases (applicable in Russian only):
ru:Yii::$app->inflection->inflectName('Иванов Петр', wapmorgan\yii2inflection\Inflector::DATIVE)=>Иванову Петру- Description of all supported cases are in Cases section.
- Inflect geographical names to relational cases (applicable in Russian only):
ru:Yii::$app->inflection->inflectGeoName('Санкт-Петербург', wapmorgan\yii2inflection\Inflector::GENITIVE)=>Санкт-Петербурга
- Generate cardinal numerals:
en:Yii::$app->inflection->cardinalize(2)=> 'two'ru:Yii::$app->inflection->cardinalize(2)=> 'два'
- Generate ordinal numerals:
en:Yii::$app->inflection->ordinalize(2)=> '2nd'ru:Yii::$app->inflection->ordinalize(2)=> '2-й'
And full form:
en:Yii::$app->inflection->ordinalize(2, wapmorgan\yii2inflection\Inflector::FULL)=> 'second'ru:Yii::$app->inflection->ordinalize(2, wapmorgan\yii2inflection\Inflector::FULL)=> 'второй'
- Money to words:
- (WIP)
en:Yii::$app->inflection->monetize(wapmorgan\yii2inflection\Inflector::DOLLAR, 122.04)=> 'one hundred twenty-two dollars four cents' ru:Yii::$app->inflection->monetize(wapmorgan\yii2inflection\Inflector::DOLLAR, 122.04)=> 'сто двадцать два доллара четыре цента'- Description of all supported currencies are in Currencies section.
- Data range to words:
en:Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y'))=> '2 years'ru:Yii::$app->inflection->textizeTimeRange(new DateInterval('P2Y'))=> '2 года'
WIP means Work-in-progress i.e this feature is not supported now, but planned to be implemented.
Cases
| Case | Russian |
|---|---|
Inflector::NOMINATIVE |
Именительный |
Inflector::ABLATIVE |
Творительный |
Inflector::ACCUSATIVE |
Винительный |
Inflector::AVERSIVE |
|
Inflector::BENEFACTIVE |
|
Inflector::CAUSAL |
|
Inflector::COMITATIVE |
|
Inflector::DATIVE |
Дательный |
Inflector::DISTRIBUTIVE |
|
Inflector::GENITIVE |
Родительный |
Inflector::ORNATIVE |
|
Inflector::POSSESSED |
|
Inflector::POSSESSIVE |
|
Inflector::PREPOSITIONAL |
Предложный |
Inflector::PRIVATIVE |
|
Inflector::SEMBLATIVE |
|
Inflector::SOCIATIVE |
Currencies
| Currency |
|---|
Inflector::DOLLAR |
Inflector::EURO |
Inflector::YEN |
Inflector::POUND |
Inflector::FRANC |
Inflector::YUAN |
Inflector::KRONA |
Inflector::PESO |
Inflector::WON |
Inflector::LIRA |
Inflector::RUBLE |
Inflector::RUPEE |
Inflector::REAL |
Inflector::RAND |
Inflector::HRYVNIA |
How does it work
It uses built-in inflector for English pluralization (yii\helpers\Inflector) and Morphos for English & Russian on-the-fly inflection (without dictionaries).
Installation
- Install extension
composer require wapmorgan/yii2-inflection
- Add
wapmorgan\yii2inflection\Inflectionas a serviceinflectionin config and specify proper target language of your application (web.php or console.php):
$config = [ // ... 'language' => 'ru_RU', // for example, Russian // ... 'components' => [ // ... 'inflection' => [ 'class' => 'wapmorgan\yii2inflection\Inflection' ] ], // ... ];
- Optional service parameters:
language- default language for inflection. By default, it uses language parameter of current application, but you can change this behavior. Currently supported langs isru(Russian) anden(English) or their's modification (ru_RU,en_US). If you pass unsupported or unknown language, an Exception will be thrown during service initializion.defaultCurrency- default currency when converting money to words. If set, you can callmonetize(float $value)without currency:Yii::$app->inflection->monetize(123.45)=>сто двадцать три рубля сорок пять копеек
- Call any methods described above in a controller / command / view.
$word = 'новость'; echo Yii::$app->inflection->pluralize(rand(2, 139), $word).PHP_EOL; echo Yii::$app->inflection->pluralize(rand(9, 69), $word).PHP_EOL;
wapmorgan/yii2-inflection 适用场景与选型建议
wapmorgan/yii2-inflection 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 121.71k 次下载、GitHub Stars 达 32, 最近一次更新时间为 2017 年 08 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「russian」 「inflection」 「english」 「yii2」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 wapmorgan/yii2-inflection 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 wapmorgan/yii2-inflection 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 wapmorgan/yii2-inflection 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Czech inflection library
GOintegro Inflector Lib
Inflector Library
DeepL API client wrapper for Laravel
Fork of original staticall/petrovich-php repository, with testing, PHP8 support and minor improvements
Склонение по падежам на русском, украинском и казахском языках, расстановка ударений в текстах - PHP-клиент для API morpher.ru.
统计信息
- 总下载量: 121.71k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 33
- 点击次数: 35
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-only
- 更新时间: 2017-08-12