- Модуль: 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];
}