boshurik / petrovich-php
Fork of original petrovich/petrovich-php repository, with testing, modern PHP support and minor improvements
Installs: 1 148
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 52
Open Issues: 0
Requires
- php: ^7.2.9 | ^8.0
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- cloudloyalty/petrovich-rules: dev-master@dev
- phpunit/phpunit: 9.6
- squizlabs/php_codesniffer: ^3.7
- symfony/yaml: ^2.0 | ^3.0 | ^4.0 | ^5.0
Suggests
- symfony/yaml: To load ruleset in yaml format
README
Склонение падежей русских имён, фамилий и отчеств. Портированная версия с Ruby на PHP, использует официальные правила
Установка и использование
Для работы требуется PHP >= 7.2.9
Для установке, добавьте данный пакет в зависимости Composer, либо вручную, либо используя следующую команду:
composer require boshurik/petrovich-php
Правила
Для установки правил можно использовать
composer require cloudloyalty/petrovich-rules
Правила обновляются редко, поэтому хорошей идеей будет сохранить их в ресурсах вашего проекта
Пример использования
Пример склонения отдельно имени, фамилии и отчества:
mb_internal_encoding('UTF-8'); require_once 'path-to-vendor/autoload.php'; $petrovich = new Staticall\Petrovich(Staticall\Petrovich\Loader::load('path-to-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-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