Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/yandex.market/lib/utils/ |
Upload File : |
<?php namespace Yandex\Market\Utils; use Bitrix\Main; use Yandex\Market; class Agent { public static function parseName($functionCall) { $result = null; if (preg_match('/^(?P<className>.*?)::callAgent\(["\'](?P<method>\w+)["\'](?:,\s*array\s*\((?P<arguments>.*)\)\s*)?\)/si', $functionCall, $matches)) { $result = [ 'class' => $matches['className'], 'method' => $matches['method'], 'arguments' => isset($matches['arguments']) ? static::parseArguments($matches['arguments']) : [], ]; } return $result; } protected static function parseArguments($argumentsString) { $result = []; foreach (explode(',', $argumentsString) as $argumentSlice) { $argumentIndex = trim(strtok($argumentSlice, '=>')); $argumentValue = trim(strtok('=>')); $argumentQuote = Market\Data\TextString::getSubstring($argumentValue, 0, 1); if ($argumentQuote === '\'' || $argumentQuote === '"') { $argumentValue = Market\Data\TextString::getSubstring($argumentValue, 1, -1); } if ($argumentValue === '') { continue; } $result[$argumentIndex] = $argumentValue; } return $result; } }