smoke585/ru-declension-laravel

Russian declension by numbers for Laravel

Maintainers

Package info

github.com/SmoKE585/ru-declension-laravel

pkg:composer/smoke585/ru-declension-laravel

Statistics

Installs: 83

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.1 2026-02-27 08:07 UTC

This package is auto-updated.

Last update: 2026-03-27 08:15:24 UTC


README

Logo

Tests Latest Version PHP Version License

Быстрое склонение русских существительных по числу для 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:

  • lemma
  • one
  • few
  • many