Giter Club home page Giter Club logo

bx-data's Introduction

Удобные классы для доступа к данным в 1C-Bitrix одинаковым способом

Build Status Latest Stable Version Latest Unstable Version License

Вне зависимости от того инфоблок это или highload блок.

  • Вам больше не нужно помнить какой ID у инфоблока.
  • Вам больше не нужно писать кучу строк для получения элементарных данных из highload блока.

Использование

Для получения списка моделей авто достаточно написать:

$models = new \App\Catalog\Model;
$result = $models->getList();

В переменной $result вы получаете массив моделей. Больше никаких циклов, никаких GetNext, Fetch и прочего.

Выборка с фильтром, сортировкой и ограничением полей:

$models = new \App\Catalog\Model;
$result = $models->getList([
    "select" => ["id", "name", "brandId", "brandName"],
    "filter" => ["brandId" => 120],
    "order" => ["name" => "asc"],
]);

В БД уйдет один запрос вида:

SELECT
    `model`.`ID` AS `ID`,
    `model`.`UF_NAME` AS `UF_NAME`,
    `model`.`UF_BRAND` AS `UF_BRAND`,
    `model_brandname_`.`UF_NAME` AS `brandName`
FROM `b_hlbd_auto_model` `model`
LEFT JOIN `b_hlbd_auto_brand` `model_brandname_` ON `model`.`UF_BRAND` = `model_brandname_`.`ID`
WHERE `model`.`UF_BRAND` = 120
AND (`model`.`UF_DELETED` IS NULL OR `model`.`UF_DELETED` = 0)
ORDER BY `model`.`UF_NAME` ASC

Выборка с фильтром по значению в справочнике, сортировкой и ограничением полей:

$models = new \App\Catalog\Model;
$result = $models->getList([
    "select" => ["id", "name", "brandId", "brandName"],
    "filter" => ["brandName" => "renault"],
    "order" => ["name" => "asc"],
]);

В БД уйдет один запрос вида:

SELECT 
    `model`.`ID` AS `ID`,
    `model`.`UF_NAME` AS `UF_NAME`,
    `model`.`UF_BRAND` AS `UF_BRAND`,
    `model_brandname_`.`UF_NAME` AS `brandName`
FROM `b_hlbd_auto_model` `model` 
LEFT JOIN `b_hlbd_auto_brand` `model_brandname_` ON `model`.`UF_BRAND` = `model_brandname_`.`ID`
WHERE UPPER(`model_brandname_`.`UF_NAME`) like upper('renault')
AND (`model`.`UF_DELETED` IS NULL OR `model`.`UF_DELETED` = 0)

Вы можете сказать: Highload блоки могут сделать тоже самое. Пусть и несколько более многословно.

Да конечно. Только стоит вспомнить сколько нужно написать в классе описания сущности представляемым highload блоком. И сразу не хочется этого делать. Сравните что нужно написать сейчас:

namespace App\Catalog;

class Model extends \Akop\Element\HlElement
{
    protected $entityName = 'Model';
}

Это весь текст класса. ВЕСЬ. Все остальное сделано за вас.

Установка

Установка происходит стандартным для composer способом:

composer require aak74/bx-data

Демосайт

bx-data's People

Contributors

aak74 avatar xmalinov avatar pytnik89 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.