private static function maybeDeobfuscate(ServerSerializationStreamReader $streamReader, $name) { if ($streamReader->hasFlags(AbstractSerializationStream::FLAG_ELIDE_TYPE_NAMES)) { $serializationPolicy = $streamReader->getSerializationPolicy(); if (!serializationPolicy instanceof TypeNameObfuscator) { throw new IncompatibleRemoteServiceException('RPC request was encoded with obfuscated type names, ' . 'but the SerializationPolicy in use does not implement ' . Classes::classOf(TypeNameObfuscator)->getName()); } $maybe = $serializationPolicy->getClassNameForTypeId($name); if (!is_null($maybe)) { return $maybe; } } else { if (($index = mb_strpos($name, '/')) !== false) { return mb_substr($name, 0, $index); } } return $name; }