Implement json encoding decoding for php. (#2682)
diff --git a/conformance/conformance_php.php b/conformance/conformance_php.php
index c231400..6900197 100755
--- a/conformance/conformance_php.php
+++ b/conformance/conformance_php.php
@@ -45,9 +45,19 @@
$test_message = new \Protobuf_test_messages\Proto3\TestAllTypes();
$response = new \Conformance\ConformanceResponse();
if ($request->getPayload() == "protobuf_payload") {
- $test_message->encode($request->getProtobufPayload());
+ try {
+ $test_message->decode($request->getProtobufPayload());
+ } catch (Exception $e) {
+ $response->setParseError($e->getMessage());
+ return $response;
+ }
} elseif ($request->getPayload() == "json_payload") {
- // TODO(teboring): Implmement json decoding.
+ try {
+ $test_message->jsonDecode($request->getJsonPayload());
+ } catch (Exception $e) {
+ $response->setParseError($e->getMessage());
+ return $response;
+ }
} else {
trigger_error("Request didn't have payload.", E_USER_ERROR);
}
@@ -57,7 +67,7 @@
} elseif ($request->getRequestedOutputFormat() == WireFormat::PROTOBUF) {
$response->setProtobufPayload($test_message->encode());
} elseif ($request->getRequestedOutputFormat() == WireFormat::JSON) {
- // TODO(teboring): Implmement json encoding.
+ $response->setJsonPayload($test_message->jsonEncode());
}
return $response;