Skip to content

Библиотека для работы с именами пользователей и обращениями к ним

License

Notifications You must be signed in to change notification settings

kr-digital/names-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Names Detector

Code Coverage Scrutinizer Code Quality Build Status Packagist

Библиотека умеет определять имя, отчество и пол пользовател по словарю в формате json/php, а также составлять обращение к нему на основе произвольной строки.

Быстрый старт

composer require kr-digital/names-detector
<?php

$namesDetector = new \KRDigital\NamesDetector\NamesDetector();

$firstNameEntry = $namesDetector->extractFirstName('Иванов Иван Иванович'); 
// $entry->getValue() = 'Иван', $entry->getGender()->getValue() = 'm'

$middleNameEntry = $namesDetector->extractMiddleName('Иванов Иван Иванович'); 
// $middleNameEntry->getValue() = 'Иванович', $middleNameEntry->getGender()->getValue() = 'm'

$title = $namesDetector->createTitle('Мария Петровна Смирнова');
// $title = 'Уважаемая Мария Петровна'

Работа с кастомным словарем

Валидный формат словаря в формате JSON:

{
  "first_names": [
    [
      "Андрей",
      "m"
    ],
    [
      "Надежда",
      "f"
    ]
  ],
  "middle_names": [
    [
      "Александрович",
      "m"
    ],
    [
      "Александровна",
      "f"
    ]
  ]
}

В формате php:

<?php

return [
  'first_names' => [
      [
          'Андрей',
          'm',
      ],
      [
          'Надежда',
          'f',
      ],
  ],
    'middle_names' => [
        [
            'Александрович',
            'm',
        ],
        [
            'Александровна',
            'f',
        ],
    ],
];

Использование своего словаря:

<?php

$customDictionaryPath = '/var/www/app/data/en_dictionary.json';

// поддерживаемые форматы: php, json
$config = new \KRDigital\NamesDetector\Config\Config($customDictionaryPath);

$namesDetector = new \KRDigital\NamesDetector\NamesDetector($config);

// <...>

Кастомные обращения

<?php

$namesDetector = new \KRDigital\NamesDetector\NamesDetector();

$prefix = new \KRDigital\NamesDetector\Entry\Prefix\Prefix('Дорогой', 'Дорогая');

$namesDetector->createTitle('Иванов Иван Иванович', $prefix); // 'Дорогой Иван Иванович'

About

Библиотека для работы с именами пользователей и обращениями к ним

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages