Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Події
Інше
Про нас

NameCaseLib2

bokhanmax/namecaselib2
v1.0.3 9 22 червня 2026
На GitHub

Laravel-пакет для автоматичного відмінювання ПІБ - прізвища, імені та по батькові. Форк класичної NameCaseLib під сучасний PHP; закриває договори, рахунки й офіційні звернення, де форма «кому» обов'язкова.

3

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

sendpulse/rest-api

Офіційний PHP SDK для SendPulse: email-розсилки, SMS, web-push, чат-боти та транзакційна пошта. Сервіс заснований в Україні і виріс у міжнародну платформу, тож SDK підтримується активно і має найбільшу аудиторію в добірці.

117 3.0.1 10

NovaPoshta for Laravel

daaner/novaposhta

Обгортка над API 2.0 Нової Пошти для Laravel: адреси, відділення, вантажі, документи та відстеження посилок. Один із найпоширеніших пакетів для інтеграції з Новою Поштою в українських проєктах.

36 1.4 7 8

MonoPay

plakidan/monobank-pay

Бібліотека для еквайрингу monobank («plata by mono»): створення рахунків, статуси оплат, повернення коштів і холди. Найпопулярніший пакет для прийому платежів через monobank, з активними релізами.

33 0.3.1 5

TurboSMS for Laravel

daaner/turbosms

Пакет для роботи з TurboSMS у Laravel: надсилання SMS і Viber, перевірка балансу та статусів доставки. Один із найпоширеніших SMS-пакетів в українських Laravel-проєктах.

22 1.40 7

Monobank for Laravel

aratkruglik/monobank-laravel

Інтеграція з API monobank для Laravel 11-13: еквайринг, виписки за рахунками, курси валют і вебхуки. Актуально підтримується під сучасні версії фреймворку.

8 2.0.1 13 5

Checkbox.in.ua SDK

kolirt/checkbox.in.ua-sdk

PHP SDK для Checkbox.in.ua: робота з касами, змінами та фіскальними чеками через REST API. Альтернативна реалізація клієнта ПРРО Checkbox для проєктів без прив'язки до Laravel.

5 0.0.6 1