Blite: быстрые инфоблоки

Технические данные

Дата публикации:
23.03.2018
Версия:
0.1.1
Адаптивность:
Нет
Поддержка композита:
Нет
Число установок:
Менее 50 раз

Совместимые редакции

Описание

Blite - легкая и более удобная альтернатива ядра битрикса. Набор классов, которые могут работать с базой битрикса без подключения классического тяжелого ядра.

Модуль находится на начальной стадии разработки. Изучаю спрос (потребность) в нем. Будет спрос - буду работать над развитием.

   В первой версии реализован функционал чтения из инфоблоков.
Хорошо подходит, например, для реализации быстро работающих ajax скриптов.

СУЩЕСТВУЮЩИЕ ОГРАНИЧЕНИЯ
  • Не поддерживает множественные свойства.
  • Поддерживаются только инфоблоки версии 2 (когда значения свойств хранятся в отдельной таблице).
ДОСТОИНСТВА
  • Может работать без ядра битрикс (значительно быстрее), но может и совместно с ним.
  • Полностью новый программный интерфейс (нет странностей и особенностей классического битрикс API).
  • Не скрывает ошибок (проще отлаживать).
  • Кеширует мета данные инфоблоков и свойств (меньше вспомогательных обращений к базе, начиная со второго запроса).
  • 100% покрыт unit-тестами
ВАЖНО
  • Не преобразует текст в html-безопасный вид (в дальнейшем появится дополнительный метод для этого). Это принципиально т.к. не всегда данные из базы возвращаются пользователю в виде HTML.

Устанавливается как обычный модуль.

Пример использования без ядра битрикс
require_once(getenv('DOCUMENT_ROOT').'/local/modules/add.blite/autoload.php');

$config = array(
    'dbname' => 'blite',
    'dbhost' => '127.0.0.1',
    'dbuser' => 'blite',
    'dbpass' => 'blite',
);
$mysqli = new mysqli($config['dbhost'], $config['dbuser'], $config['dbpass'], $config['dbname']);

$iblock_id_or_code = 'news';

$blite = new \Add\Blite($mysqli);
$list = $blite
    ->iblock()
    ->select($iblock_id_or_code)
    ->fields(array('ID','NAME', 'DATE_CREATE'))
    ->property(array('PROP_CODE_1', 'PROP_CODE_2'))
    ->where(
        array(
            array('ID', '!=', 12345),
            array('ID', 'is not', null),
            array('ID', 'is', true),
            array('DATE_CREATE', '>=', '2018-01-01'),
            array('PROP_CODE_1', 'in', array(111,'sss','ddd')),
            array('PROP_CODE_1', 'like', 'ss%'),
            array('PROP_CODE_2', 'not in', array('aaa','bbb')),
        )
    )
    ->order(array('ID' => 'DESC'))
    ->limit(0,3)
    ->exec();

echo '<pre>';
var_export($list);
echo '</pre>';

Пример использования с ядром битрикс
require_once(getenv('DOCUMENT_ROOT').'/bitrix/modules/main/include/prolog_before.php');

\Bitrix\Main\Loader::includeModule('add.blite');

$connection = \Bitrix\Main\Application::getConnection();
$mysqli = $connection->getResource();

$iblock_id_or_code = 'news';

$blite = new \Add\Blite($mysqli);
$list = $blite
    ->iblock()
    ->select($iblock_id_or_code)
    ->fields(array('ID','NAME', 'DATE_CREATE'))
    ->property(array('PROP_CODE_1', 'PROP_CODE_2'))
    ->where(
        array(
            array('ID', '!=', 12345),
            array('ID', 'is not', null),
            array('ID', 'is', true),
            array('DATE_CREATE', '>=', '2018-01-01'),
            array('PROP_CODE_1', 'in', array(111,'sss','ddd')),
            array('PROP_CODE_1', 'like', 'ss%'),
            array('PROP_CODE_2', 'not in', array('aaa','bbb')),
        )
    )
    ->order(array('ID' => 'DESC'))
    ->limit(0,3)
    ->exec();

echo '<pre>';
var_export($list);
echo '</pre>';

Замечания и предложения можно направлять по адресу adm@knowly.ru

Установите этот модуль прямо сейчас!

Для этого укажите адрес сайта:

пример: http://www.site.ru
Blite: быстрые инфоблоки
Blite: быстрые инфоблоки
Бесплатно