Использование объектного 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(); // вызов шиблона компонента
}
}
Разумеется в компоненте есть смысл описать кешеирование, проверку прав, возврат параметров в шаблон и многое другое, но это уже другая история..
← Назад