В самом деле, эти GetList’ы в сложных компонентах превращаются в бесконечный поток кода, по-сути не выполняющего никакой бизнес-логики.
Мы нашли решение, а точнее создали его. Встречайте Bataline Framework.
Что это?
Bataline Framework — это обновляемый программный модуль для 1С-Битрикс, устанавливаемый через 1С-Битрикс Marketplace, позволяющий существенно оптимизировать процесс разработки проектов на основе 1С-Битрикс.
Основной упор при разработке модуля был сделан на оптимизацию работы с данными в инфоблоках, т.к. именно этот модуль является основным хранилищем данных. Нам удалось добиться существенного увеличения скорости разработки и качества кода компонентов.
Для кого?
Прежде всего для разработчиков, которые желают увеличить качество разрабатываемых интернет проектов на 1С-Битрикс, и существенно сократить время и ресурсы, затрачиваемые на разработку.
О да, покажите мне его!
Получение элементов инфоблока:
$oCollection = IbFinder::getInstance()->select('*') ->from(‘news’) ->order(‘pos desc’) ->limit(10) ->fetchAll();
В данном примере производится выборка коллекции из 10 элементов из инфоблока новостей.
Создание элемента инфоблока:
if (!empty($_POST['com'])) { $attr = $_POST['com']; $attr['Active'] = "Y"; $attr['Code'] = time(); $object = new BatalineObject($attr, intval($arParams["IBLOCK_ID"])); if ($object->save()) { $arResult['success'] = true; } }
Создаем новый элемент инфоблока IBLOCK_ID, данные для полей берем из отправленной формы.
Пример обновления элемента:
$oItem = IbFinder::getInstance()->select('*') ->from($arParams["IBLOCK_ID"]) ->where(array('Id' => $arParams["ELEMENT_ID"])) ->fetch(); $oItem->setName(‘Новое название’); $oItem->save();
Получаем элемент по идентификатору, присваиваем новое название и отправляем запрос на сохранение.
Пример удаления элемента:
$oItem = IbFinder::getInstance()->select('*') ->from($arParams["IBLOCK_ID"]) ->where(array('Id' => $arParams["ELEMENT_ID"])) ->fetch(); $oItem->delete();
Тут все совсем просто — получаем элемент по идентификатору и удаляем его.
Это все?
Нет. Помимо работы с элементами инфоблоков, модуль позволяет работать с разделами инфоблоков, пользователями, оптимизирует работу с изображениями, свойствами элементов и датой со временем.
Все функционал описан в документации разработчика, доступной на промо-сайте: bataline-framework.ru
Вместо заключения:
Самая актуальная версия модуля находится в репозитории на GitHub по адресу: github.com/pimax/bataline-framework
Примеры компонентов, разработанных с использованием модуля: На Github
Сайт модуля: bataline-framework.ru/
Ну и конечно ссылка на модуль в каталоге Макетплейс: marketplace.1c-bitrix.ru/solutions/bataline.framework/
ссылка на оригинал статьи http://habrahabr.ru/post/179939/
Добавить комментарий