- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/engine/controller.php
- Класс: BitrixMainEngineController
- Вызов: Controller::attachFilters
protected function attachFilters(Action $action): void
{
$modifiedConfig = $this->buildFilters(
$this->getActionConfig($action->getName())
);
$eventManager = EventManager::getInstance();
foreach ($modifiedConfig['prefilters'] as $filter)
{
/** @var $filter ActionFilterBase */
if (!in_array($this->getScope(), $filter->listAllowedScopes(), true))
{
continue;
}
$filter->bindAction($action);
$this->eventHandlersIds['prefilters'][] = $eventManager->addEventHandler(
'main',
static::getFullEventName(static::EVENT_ON_BEFORE_ACTION),
[$filter, 'onBeforeAction']
);
}
foreach ($modifiedConfig['postfilters'] as $filter)
{
/** @var $filter ActionFilterBase */
if (!in_array($this->getScope(), $filter->listAllowedScopes(), true))
{
continue;
}
/** @var $filter ActionFilterBase */
$filter->bindAction($action);
$this->eventHandlersIds['postfilters'][] = $eventManager->addEventHandler(
'main',
static::getFullEventName(static::EVENT_ON_AFTER_ACTION),
[$filter, 'onAfterAction']
);
}
}