Склонение текста в Bitrix: используем класс Declension

Share

Многие разработчики по старинке пишут громоздкие функции с if/else или switch, чтобы правильно склонять слова в зависимости от числа (например, «заказ», «заказа», «заказов»). В современном ядре Bitrix D7 для этого есть лаконичный стандартный инструмент — класс Bitrix\Main\Grid\Declension.

Как это работает?

Вам больше не нужно высчитывать остаток от деления на 10 или 100. Достаточно передать в конструктор три формы слова:

  1. Именительный падеж, единственное число (Один что? — товар).
  2. Родительный падеж, единственное число (Два чего? — товара).
  3. Родительный падеж, множественное число (Пять чего? — товаров).

Пример кода


use Bitrix\Main\Grid\Declension;

// 1. Создаем экземпляр и задаем формы слова
$goodDeclension = new Declension('товар', 'товара', 'товаров');

// 2. Получаем нужную форму для конкретного числа
echo $arResult["ELEMENT_COUNT"] . ' ' . $goodDeclension->get($arResult["ELEMENT_COUNT"]);


Почему это удобно?

  1. Чистый код: Логика склонения скрыта внутри системного класса.
  2. Надежность: Стандартное решение Bitrix учитывает все особенности русского языка.
  3. Универсальность: Подходит для любых сущностей — баллов, дней, услуг или пользователей.

Этот метод делает шаблоны компонентов чище и избавляет от «велосипедов» в проекте.