public static function validateData($args, $methodInfo)
 {
     $result = array('_valid' => array());
     if (!is_array($methodInfo)) {
         $result['_invalid'][] = 'Method not found';
         return $result;
     }
     $methodsParams = $methodInfo['params'];
     foreach ($args as $name => $arg) {
         if (isset($methodsParams[$name])) {
             $validType = $methodsParams[$name];
             $type = gettype($arg);
             switch ($type) {
                 case 'integer':
                     $type = 'int';
                     break;
                 case 'double':
                     $type = 'float';
                     break;
                 case 'array':
                     if (count($arg) > 0) {
                         if (preg_match('/@.*?;type=.*?\\/.+$/', @$arg[0])) {
                             $type = 'imagefile';
                             $name = '@' . $name;
                             $arg = @$arg[0];
                         } else {
                             $item_type = gettype($arg[0]);
                             switch ($item_type) {
                                 case 'integer':
                                     $item_type = 'int';
                                     break;
                                 case 'double':
                                     $item_type = 'float';
                                     break;
                             }
                             $type = 'array(' . $item_type . ')';
                         }
                     }
                     break;
             }
             if ($validType !== $type) {
                 if (substr($validType, 0, 4) === 'enum') {
                     if ($arg === 'enum' || !preg_match("@" . preg_quote($arg) . "@", $validType)) {
                         $result['_invalid'][] = 'Invalid enum data param "' . $name . '" value (' . $arg . '): valid values "' . $validType . '"';
                     } else {
                         $result['_valid'][$name] = $arg;
                     }
                 } elseif ($type === 'array' && substr($validType, 0, 5) === 'array' || $type === 'string' && $validType === 'text') {
                     $result['_valid'][$name] = $arg;
                 } else {
                     $result['_invalid'][] = RequestValidator::invalidParamType($name, $arg, $type, $validType);
                 }
             } else {
                 $result['_valid'][$name] = $arg;
             }
         } else {
             $result['_invalid'][] = RequestValidator::invalidParam($name, $arg, gettype($arg));
         }
     }
     return $result;
 }