smoke585 / ru-declension-laravel
Russian declension by numbers for Laravel
1.0.1
2026-02-27 08:07 UTC
Requires
- php: ^8.1
- ext-pdo: *
- ext-pdo_sqlite: *
- illuminate/support: ^10.0|^11.0|^12.0
Requires (Dev)
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.5|^11.0
README
Быстрое склонение русских существительных по числу для Laravel.
Возможности
- Склонение через
Facadeи helper-функцию - Встроенная словарная база в SQLite (поставляется с пакетом)
- В словарной базе 899 слов, размер базы 190кб
- Пользовательский словарь через публикуемый конфиг
- Приоритет пользовательского словаря над SQLite
- Минимальные накладные расходы: кэширование результатов в памяти процесса
Требования
- PHP 8.1+
- расширения
pdoиpdo_sqlite - Laravel 10 / 11 / 12
Установка
composer require smoke585/ru-declension-laravel
Опубликовать конфиг:
php artisan vendor:publish --tag=ru-declension-config
Использование
use SmoKE585\RUDeclensionLaravel\Facades\RUDeclension; RUDeclension::make(3, 'балл'); // 3 балла RUDeclension::make('балл', 3); // 3 балла RUDeclension::make(3, 'балл', RUDeclension::MODE_WORD); // балла RUDeclension(5, 'балл'); // 5 баллов
Конфиг
config/ru-declension.php
return [ 'sqlite_path' => null, // null = встроенная база пакета 'strict' => false, 'user_dictionary' => [ 'комментарий' => ['комментарий', 'комментария', 'комментариев'], ], ];
Поддерживаются оба формата user_dictionary:
'слово' => ['слово', 'слова', 'слов']
'слово' => ['one' => 'слово', 'few' => 'слова', 'many' => 'слов']
Формат таблицы SQLite
Таблица forms:
lemmaonefewmany
