Многие разработчики по старинке пишут громоздкие функции с if/else или switch, чтобы правильно склонять слова в зависимости от числа (например, «заказ», «заказа», «заказов»). В современном ядре Bitrix D7 для этого есть лаконичный стандартный инструмент — класс Bitrix\Main\Grid\Declension.
Как это работает?
Вам больше не нужно высчитывать остаток от деления на 10 или 100. Достаточно передать в конструктор три формы слова:
- Именительный падеж, единственное число (Один что? — товар).
- Родительный падеж, единственное число (Два чего? — товара).
- Родительный падеж, множественное число (Пять чего? — товаров).
Пример кода
use Bitrix\Main\Grid\Declension;
// 1. Создаем экземпляр и задаем формы слова
$goodDeclension = new Declension('товар', 'товара', 'товаров');
// 2. Получаем нужную форму для конкретного числа
echo $arResult["ELEMENT_COUNT"] . ' ' . $goodDeclension->get($arResult["ELEMENT_COUNT"]);
Почему это удобно?
- Чистый код: Логика склонения скрыта внутри системного класса.
- Надежность: Стандартное решение Bitrix учитывает все особенности русского языка.
- Универсальность: Подходит для любых сущностей — баллов, дней, услуг или пользователей.
Этот метод делает шаблоны компонентов чище и избавляет от «велосипедов» в проекте.