Второй бэкенд студийного проекта на Битриксе

Задача сделать бекенд в команде с фронтендером, для создания интернет-магазина.
01.10.2017

Это второй интернет-магазин с использование обёртки als.helper, который разарабатывался для первого интернет-магазина. Здесь, в основном, писалась бизнес-логика, и рефакторилась обёртка. Например, система кеширования была существенно переписана и дополнена для удобства использования и минимизации ошибок.

Не просто удобство использование, но и минимизация ошибок

В этом проекте оказалось очень много связок элеметов друг на друга. Для этого, был написан отдельный модуль, который в админке выглядел как выпадающий список элементов или секций инфоблока или хайлоад-блока. Этот тип-данных подключался и настраивался в настройках инфоблока, подобно другим типам данных.

Пригодились селекторы в геттерах. У нас очень много товаров и очень много данных для них, в разделах фронтенд запрашивает только необходимый минимум, это ускоряет генерацию, загрузку и не убивает память слабых ноутбуков.

Кеширование теперь получилось таким. Ttl — время жизни кеша; hash — ключ, по которому определяется закешированы эти данные или нет (опции запроса данных, кроче говоря); dir — место, где хранить кешируемые файлы, относительно папки с кэшем; func — функция получения данных.

	
\ALS\Helper\Cache::cached([ 'ttl' => 60, 'hash' => $arParams, // по умолчанию [] 'dir' => '/iblock/section/list/', 'func' => function() { return 'cached string'; } ]);

Для удобства реализовали свой быстрый Типограф на стероидах, чтобы быстро-быстро обрабатывать строки, где нужно бизнес-логике.

Логика составления геттеров теперь декларативная. В настройках указываются нужные форматы данных и колонки в БД, а дальше магия сама всё делает.