• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/engine/scopemanager.php
  • Класс: BitrixRestEngineScopeManager
  • Вызов: ScopeManager::getMethodInfo
public function getMethodInfo(?string $method) : array
{
	if (!$this->methodInfoList[$method])
	{
		$scope = '';
		$module = '';
		$scopeFind = '';
		$actionParts = explode(self::METHOD_DELIMITER, $method);

		foreach ($actionParts as $partScope)
		{
			$scopeFind .= ($scopeFind !== '' ? self::METHOD_DELIMITER : '') . $partScope;
			$moduleFind = $this->getAlias($scopeFind);
			if ($moduleFind)
			{
				$module = $moduleFind;
				$scope = $scopeFind;
			}
		}

		if (!$scope || !$module)
		{
			$scope = array_shift($actionParts);
			$module = $scope;
		}
		elseif ($module !== $scope)
		{
			$method = $module . self::METHOD_DELIMITER . $method;
		}

		/**
		 * for method with ':' doesn't add extra ':' for modules with points in the name
		 */
		if (
			mb_strpos($method, self::VENDOR_DELIMITER) === false
			&& mb_strpos($module, self::METHOD_DELIMITER) !== false
		)
		{
			$moduleParts = explode(self::METHOD_DELIMITER, $module);
			array_pop($moduleParts);
			$vendor = implode(self::METHOD_DELIMITER, $moduleParts);

			$method = preg_replace('/^' . $vendor . self::METHOD_DELIMITER . '/', $vendor . self::VENDOR_DELIMITER, $method);
		}

		$this->methodInfoList[$method] = [
			'moduleId' => $module,
			'scope' => $scope,
			'method' => $method,
		];
	}

	return $this->methodInfoList[$method];
}