Компонент битрикс в виде класса

13.10.2021 | 1304 | SQL

Использование объектного class.php вместо традиционного component.php в корне своего компонента.

Класс подключается автоматически, ничего прописывать для этого не нужно.

Создаем класс расширяемый от CBitrixComponent с произвольным имемем, к примеру CDevelopernameComponentnameComponent, где вы можете указать код разработчика и код/название компонента.
...
class CDevelopernameComponentnameComponent extends CBitrixComponent
{
...
В этом классе доступны два знакомых нам свойства:
$this->arParams
$this->arResult
Создаем методы, который будут вызваны автоматически:
onPrepareComponentParams()
executeComponent()
В методе onPrepareComponentParams() принято описывать логику связанную с параметрами в $arParams, а в методе executeComponent() выполнять основную логику компонента, результаты которой помещаются в свойство $this->arResult.

В результате пустой компонент у меня выглядит вот так:
class CDevelopernameComponentnameComponent extends CBitrixComponent
{
  public function onPrepareComponentParams()
  {
    // логика связанная с параметрами
  }
  public function executeComponent()
  {
    // логика связанная с результатом

    $this->includeComponentTemplate(); // вызов шиблона компонента
  }
}
Разумеется в компоненте есть смысл описать кешеирование, проверку прав, возврат параметров в шаблон и многое другое, но это уже другая история..


← Назад

Комментарии (0)