staticall/petrovich-php

Fork of original petrovich/petrovich-php repository, with testing, PHP7 support and minor improvements


Keywords
russian, inflection, petrovich, declination
License
MIT

Documentation

Petrovich

Petrovich

Build Status Coverage Status Latest Stable Version Code Quality Infection MSI

Склонение падежей русских имён, фамилий и отчеств. Портированная версия с Ruby на PHP, использует официальные правила

Установка и использование

Для работы требуется PHP >= 7.2.9

Для установке, добавьте данный пакет в зависимости Composer, либо вручную, либо используя следующую команду:

composer require staticall/petrovich-php

Пример использования

Пример склонения отдельно имени, фамилии и отчества:

mb_internal_encoding('UTF-8');

require_once 'path-to-vendor/autoload.php';

$petrovich = new Staticall\Petrovich(Staticall\Petrovich\Loader::load('path-to-vendor/cloudloyalty/petrovich-rules/rules.json'));

// Родительный падеж
$lastNameGenitive   = $petrovich->inflectLastName('Пушкин', Staticall\Petrovich\Ruleset::CASE_GENITIVE, Staticall\Petrovich\Ruleset::GENDER_MALE); // Пушкина
$firstNameGenitive  = $petrovich->inflectFirstName('Александр', Staticall\Petrovich\Ruleset::CASE_GENITIVE, Petrovich\Ruleset::GENDER_MALE); // Александра
$middleNameGenitive = $petrovich->inflectMiddleName('Сергеевич', Staticall\Petrovich\Ruleset::CASE_GENITIVE, Staticall\Petrovich\Ruleset::GENDER_MALE); // Сергеевича

Пример склонения одновременно имени, фамилии и отчества:

mb_internal_encoding('UTF-8');

require_once 'path-to-vendor/autoload.php';

$petrovich = new Staticall\Petrovich(Staticall\Petrovich\Loader::load('path-to-vendor/cloudloyalty/petrovich-rules/rules.json'));

// Родительный падеж
// Важно! На данный момент, такой порядок обязателен
$fullNameGenitive = $petrovich->inflectFullName('Пушкин Александр Сергеевич', Staticall\Petrovich\Ruleset::CASE_GENITIVE, Staticall\Petrovich\Ruleset::GENDER_MALE); // Пушкина Александра Сергеевича

Как можно определить пол по отчеству:

mb_internal_encoding('UTF-8');

require_once 'path-to-vendor/autoload.php';

echo Staticall\Petrovich::detectGender('Петровна'); // Petrovich::GENDER_FEMALE

Версионирование

При версионировании, следуем заветам SemVer. Для просмотра доступных версий, взгляните на теги этого репозитория.

Авторы

Все контрибьюторы оригинального проекта.

А также все контрибьюторы этого форка.

Лицензия

Проект использует лицензию MIT - для просмотра лицензии, посмотрите файл LICENSE.md

Благодарности