Laravel-пакет для автоматичного відмінювання ПІБ - прізвища, імені та по батькові. Форк класичної NameCaseLib під сучасний PHP; закриває договори, рахунки й офіційні звернення, де форма «кому» обов'язкова.
README
NameCaseLib2
NameCaseLib2 — Laravel-пакет для автоматичного відмінювання ПІБ (прізвище, ім'я, по-батькові) у російській та українській мовах.
Це адаптована для PHP 8.x та Laravel версія бібліотеки NameCaseLib, оригінально написаної Андрієм Чайкою.
Встановлення
composer require bokhanmax/namecaselib2
Публікація конфігу (опціонально):
php artisan vendor:publish --tag=namecaselib-config
Конфігурація
Файл config/namecaselib.php:
return [
'locale' => 'ua', // 'ua' — українська, 'ru' — російська
'charset' => 'utf-8',
];
Інструкція
Константи падежів
use NameCaseLib2\NCL;
NCL::$IMENITLN // 0 — Називний: Іваненко Іван (Хто?)
NCL::$RODITLN // 1 — Родовий: Іваненка Івана (Кого?)
NCL::$DATELN // 2 — Давальний: Іваненку Івану (Кому?)
NCL::$VINITELN // 3 — Знахідний: Іваненка Івана (Кого?)
NCL::$TVORITELN // 4 — Орудний: Іваненком Іваном (Ким?)
NCL::$PREDLOGN // 5 — Місцевий: Іваненку Івану (Про кого?)
// Лише для української мови:
NCL::$UaKlychnyi // 6 — Кличний: Іване!
Методи
use NameCaseLib2\Laravel\Facades\NameCase;
use NameCaseLib2\NCL;
// Усе ПІБ одразу (найзручніший спосіб):
NameCase::q('Іваненко Іван Іванович', NCL::$RODITLN, NCL::$MAN);
// → "Іваненка Івана Івановича"
// Тільки ім'я:
NameCase::qFirstName('Іван', NCL::$TVORITELN);
// Тільки прізвище:
NameCase::qSecondName('Іваненко', NCL::$RODITLN, NCL::$MAN);
// Тільки по-батькові:
NameCase::qFatherName('Іванович', NCL::$DATELN, NCL::$MAN);
// Флюент-стиль:
NameCase::setSecondName('Іваненко')
->setFirstName('Іван')
->setFatherName('Іванович')
->setGender(NCL::$MAN)
->getFormatted(NCL::$PREDLOGN);
// → "Іваненку Івану Івановичу"
// Змінити порядок виводу (S=прізвище, N=ім'я, F=по-батькові):
NameCase::setSecondName('Іваненко')
->setFirstName('Іван')
->setGender(NCL::$MAN)
->getFormatted(NCL::$DATELN, 'N S');
// → "Івану Іваненку"
Визначення статі
// З рядка ПІБ — повертає NCL::$MAN (1) або NCL::$WOMAN (2):
$gender = NameCase::genderDetect('Іваненко Іван Іванович'); // → 1
$gender = NameCase::genderDetect('Іваненко Олена Петрівна'); // → 2
if ($gender === NCL::$MAN) {
echo 'чоловік';
} elseif ($gender === NCL::$WOMAN) {
echo 'жінка';
}
// Флюент-стиль — якщо слова вже встановлені:
$gender = NameCase::setFirstName('Олена')
->setSecondName('Петренко')
->genderAutoDetect(); // → 2
Надійність визначення:
- По-батькові → ~100%
- Ім'я + прізвище → ~100%
- Тільки ім'я → ~98.5%
- Тільки прізвище → ~96%
Історія версій
1.0.0 (2026-06-10)
- Адаптація для PHP 8.x та Laravel
- Додано неймспейси, ServiceProvider, Facade, конфіг
- Виправлено сумісність з PHP 8.4
- Адаптовано тести
- Пакет протестовано на Laravel
0.4.1 (2016-11-23) — оригінальна бібліотека
- Rules updates (5 years of work)
0.4 (2011-07-09)
- Повна переробка коду
- Підтримка різних регістрів слів
0.3 (2011-07-02)
- Кличний відмінок для української
0.1.0 (2011-05-01)
- Перша версія бібліотеки
Схожі пакети
SendPulse REST API
Офіційний PHP SDK для SendPulse: email-розсилки, SMS, web-push, чат-боти та транзакційна пошта. Сервіс заснований в Україні і виріс у міжнародну платформу, тож SDK підтримується активно і має найбільшу аудиторію в добірці.
NovaPoshta for Laravel
Обгортка над API 2.0 Нової Пошти для Laravel: адреси, відділення, вантажі, документи та відстеження посилок. Один із найпоширеніших пакетів для інтеграції з Новою Поштою в українських проєктах.
TurboSMS for Laravel
Пакет для роботи з TurboSMS у Laravel: надсилання SMS і Viber, перевірка балансу та статусів доставки. Один із найпоширеніших SMS-пакетів в українських Laravel-проєктах.
- Версія
- v1.0.3
- Завантажень
- 9
- Реліз
- 22 червня 2026
- Походження
- Українська розробка
- Категорія
- Українські сервіси