示例#1
0
 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;
 }