Download the PHP package alexpago/bitrix-models without Composer

On this page you can find all versions of the php package alexpago/bitrix-models. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package bitrix-models

Bitrix models

Данный модуль позволяет легко обращаться к инфоблокам, Highload-блокам, таблицам в Bitrix CMS.

Текущий модуль не использует иных зависимостей и работает исключительно как фасет ядра D7.

Установка

  1. Устанавливаем модуль
  2. Для удобства создания моделей создаем бинарный файл по пути bin/model. Содержимое файла:

Создание моделей в автоматическом режиме

Для создания моделей инфоблоков выполняем команду . В результате выполнения команды отобразится список инфоблоков:

Выберите необходимые модели для генерации. В процессе создания модели будет автоматически заполнен API_CODE инфоблока при его отсутствии. Внимание: для модуля D7 необходим заполненный API_CODE у инфоблока.

После создания модели будет создан файл с примерным содержимым:

Создание моделей в ручном режиме

Инфоблок: Необходимо создать класс наследуясь от класса

Название класса должно соответствовать символьному коду инфоблока в camelSpace.

Пример: символьный код инфоблока certificates_services, тогда название класса будет CertificatesServices

Опционально: Если необходимо, чтобы символьный код отличался от названия класса, то необходимо заполнить константу с указанием символьного кода инфоблока.

Пример:

Опционально: Если идентификатор инфоблока является статическим на всех проектах, то желательно указать его заполнив константу . Таким образом системе не нужно будет определять идентификатор инфоблока и система сэкономит один SQL запрос. Пример:

Получение элементов

Работа с классами аналогична работе с Bitrix D7 запросами.

Базовый запрос

Базовый запрос с фильтрацией и лимитом

Заметка: можно использовать сокращенный вариант установки лимита ->limit(10) или передать первый параметр в ->get(10) Например:

Заметка: для установки смещения ->setOffset(50) или ->offset(50) или передать значение вторым параметром в ->get(10, 50) Например: CertificatesServices::query()->get(10, 50)

Поэтапное заполнение фильтра

Метод setFilter устанавливает фильтр сбрасывая предыдущие условия, если они были установлены ранее.

Взамен setFilter можно использовать where(column, operator, value).

Для поиска OR после условия where можно использовать orWhere(column, operator, value).

Так же существует упрощенный вариант фильтрации по полям whereColumn(value, operator). Column должен быть заполнен в CamelSpace. Доступны все поля, включая свойства инфоблока. Например: Свойство с кодом CITY_ID можно отфильтровать как whereCityId(value)

Внимание: operator по умолчанию = (равно)

Внимание: если выполнить setFilter после where или whereColumn, то предыдущие значения будут стерты и учитываться будут только данные из setFilter

Пример фильтрации:

Получение одного элемента

Если нужно получить элемент в виде массива, используйте firstArray(). Вызов метода firstArray() аналогичен цепочке вызовов first()->toArray()

Выборка

По умолчанию если не указывать setSelect будут выбраны все поля инфоблока без свойств. Для получения всех свойств необходимо вызвать метод withProperties.

Пример:

Если нужно получить элементы в виде массива, используйте getArray(). Вызов метода getArray() аналогичен цепочке вызовов get()->toArray()

Пример с заполнением выборки:

Пример с поэтапным пополнением выборки:

Пример с поэтапным пополнением выборки и выгрузкой всех свойств:

Внимание: не рекомендуется выгружать все свойства без строгой необходимости Внимание: DETAIL_PAGE_URL не принадлежит элементам. Для получения используйте метод getDetailPageUrl(). Если необходимо заранее получить список детальных страниц, перед get рекомендуем использовать withDetailPageUrl()

Пример с получением detail page url:

Количество элементов

Пример получения количества элементов:

Сортировка

Сортировка происходит путем заполнение массивом через метод setOrder или путем наполнения order(column) и orderDesc(column)

Пример:

Пример заполнением:

Внимание: если выполнить setOrder после order или orderDesc, то предыдущие значения будут стерты и учитываться будут только данные из setOrder

Кеширование

Запросы можно кешировать. Для этого используйте withCache(). Метод принимает два аргумента: время жизни кэша в секундах и bool для кеширования join. Так же заранее можно предопределить в классе свойства public int $cacheTtl и public bool $cacheJoin.

Пример запроса с кешированием на час и кешированием join:

Если в классе установлен кэш по умолчанию, то его можно отключить для определенного запроса методом withoutCache()

Преобразование результатов

По умолчанию данные возвращаются объектами ORM D7.

Пример обработки запроса:

Так же можно приводить результат в массив

Пример:

Внимание: метод toArray вернет так же зависимости привязок. Например IBLOCK_ELEMENT_ID. Для получения только значения VALUE используйте $element->toArrayOnlyValues()

Действия

У моделей доступны быстрые действия.

Удаление элемента

Любой элемент можно удалить одной командой

Так же можно удалить элементы по фильтру не получая их экземпляры

Обновление элемента

Обновление элемента происходит путем присваивания ему новых свойств через магический метод __set, с последующим вызовом метода save().

Так же можно воспользоваться методом update()

Метод update() можно применять аналогично delete() к query запросу

Создание элемента

Создание нового элемента аналогично обновлению через save(). Для начала необходимо создать экземпляр объекта и заполнить его данными. После заполнения вызвать метод save().

Так же можно использовать метод put(), который вызовет метод save() и вернет экземпляр созданного объекта.

События

У моделей можно добавлять события на добавление, изменение и удаления элементов. Доступны следующие события:

Для получения списка изменяемых свойств можно использовать метод getChangedProperties

Пример:


All versions of bitrix-models with dependencies

PHP Build Version
Package Version
Requires php Version >=8.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package alexpago/bitrix-models contains the following files

Loading the files please wait ....