Склонение падежей русских имён, фамилий и отчеств. Портированная версия с 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