generate_deserialize_container(out, type, name);
} else if (type->is_base_type() || type->is_enum()) {
- out << indent() << "if (is_a($input,'TBinaryProtocolAccelerated') && function_exists('thrift_protocol_binary_deserialize')) {" << endl;
+ out << indent() << "if (($input instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_binary_deserialize')) {" << endl;
indent_up();
string ttype_name;
if (type->is_enum()) {
void t_php_generator::generate_deserialize_container(ofstream &out,
t_type* ttype,
string prefix) {
- out << indent() << "if (is_a($input, 'TBinaryProtocolAccelerated') && function_exists('thrift_protocol_binary_deserialize'))" << endl;
+ out << indent() << "if (($input instanceof TProtocol::$TBINARYPROTOCOLACCELERATED) && function_exists('thrift_protocol_binary_deserialize'))" << endl;
scope_up(out);
string ttype_name;
* Protocol base class module.
*/
abstract class TProtocol {
+ // The below may seem silly, but it is to get around the problem that the
+ // "instanceof" operator can only take in a T_VARIABLE and not a T_STRING
+ // or T_CONSTANT_ENCAPSED_STRING. Using "is_a()" instead of "instanceof" is
+ // a workaround but is deprecated in PHP5. This is used in the generated
+ // deserialization code.
+ static $TBINARYPROTOCOLACCELERATED = 'TBinaryProtocolAccelerated';
/**
* Underlying transport
return $this->trans_;
}
- /**
+ /**
* Writes the message header
*
* @param string $name Function name
public abstract function writeMapBegin($keyType, $valType, $size);
public abstract function writeMapEnd();
-
+
public abstract function writeListBegin($elemType, $size);
-
+
public abstract function writeListEnd();
public abstract function writeSetBegin($elemType, $size);
public abstract function writeSetEnd();
-
+
public abstract function writeBool($bool);
public abstract function writeByte($byte);
-
+
public abstract function writeI16($i16);
public abstract function writeI32($i32);
public abstract function readMessageEnd();
public abstract function readStructBegin(&$name);
-
+
public abstract function readStructEnd();
public abstract function readFieldBegin(&$name, &$fieldType, &$fieldId);
public abstract function readMapEnd();
public abstract function readListBegin(&$elemType, &$size);
-
+
public abstract function readListEnd();
public abstract function readSetBegin(&$elemType, &$size);
-
+
public abstract function readSetEnd();
public abstract function readBool(&$bool);
-
+
public abstract function readByte(&$byte);
-
+
public abstract function readI16(&$i16);
public abstract function readI32(&$i32);
}
default:
return 0;
- }
+ }
}
}
*/
public function getProtocol($trans);
}
-
+
?>