• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/php_parser.php
  • Класс: PHPParser
  • Вызов: PHPParser::GetComponentParams
static function GetComponentParams($instruction, $arAllStr)
{
	if ($pos = mb_strpos($instruction, "("))
	{
		$func_name = mb_substr($instruction, 0, $pos + 1);
		if (preg_match("/(\$[A-Z_][A-Z0-9_]*)(\s*=\s*)/i", $func_name, $arMatch))
		{
			$var_name = $arMatch[1];
		}
		else
		{
			$var_name = "";
		}

		$params = mb_substr($instruction, $pos + 1);
		$arParams = PHPParser::GetParams($params);

		$arIncludeParams = array();
		$arFuncParams = array();
		PHPParser::GetParamsRec($arParams[2] ?? '', $arAllStr, $arIncludeParams);
		PHPParser::GetParamsRec($arParams[4] ?? '', $arAllStr, $arFuncParams);

		return array(
			"COMPONENT_NAME" => PHPParser::ReplString($arParams[0] ?? '', $arAllStr),
			"TEMPLATE_NAME" => PHPParser::ReplString($arParams[1] ?? '', $arAllStr),
			"PARAMS" => $arIncludeParams,
			"PARENT_COMP" => $arParams[3] ?? '',
			"VARIABLE" => $var_name,
			"FUNCTION_PARAMS" => $arFuncParams,
		);
	}
	return array();
}