/** * Формирует url для маршрута относительно HTTP-запроса к компоненту * @param string $routeName имя маршрута * @param array $params * @param bool $useQuery использовать ли GET-параметры текущего HTTP-запроса * @return string */ public function __invoke($routeName, $params = [], $useQuery = false) { $context = $this->dispatcher->getCurrentContext(); $baseUrl = $context->getBaseUrl(); $url = $baseUrl . $context->getComponent()->getRouter()->assemble($routeName, $params) ?: '/'; if ($useQuery) { $getParams = $this->dispatcher->getCurrentRequest()->query->all(); if ($getParams) { $url .= '?' . http_build_query($getParams); } } return $url; }
/** * Проверяет права на ресурс. * @param IAclResource|string $resource ресурс или имя ресурса * @param string $operationName имя операции над ресурсом * @return bool */ public function __invoke($resource, $operationName = IAclManager::OPERATION_ALL) { $context = $this->dispatcher->getCurrentContext(); return $this->dispatcher->checkPermissions($context->getComponent(), $resource, $operationName); }
/** * Возвращает помощник вида для вызова виджетов * @return callable */ protected function getWidgetHelper() { return function ($widgetPath, array $args = []) { return $this->dispatcher->executeWidget($widgetPath, $args); }; }