From 165eca9c7cdfcbc3b6ac4d8eeadb8e1c80a2584c Mon Sep 17 00:00:00 2001 From: Mark Slee Date: Thu, 4 Oct 2007 01:19:20 +0000 Subject: [PATCH] Make REST PHP deserializer generated PHP code support map/list/set Summary: list/set are comma-separated and explode, map is JSON decoded Reviewed By: hzhao Test Plan: Invoke API methods via JSON git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665290 13f79535-47bb-0310-9956-ffa450edef68 --- compiler/cpp/src/generate/t_php_generator.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc index b913185f..70dbb517 100644 --- a/compiler/cpp/src/generate/t_php_generator.cc +++ b/compiler/cpp/src/generate/t_php_generator.cc @@ -912,7 +912,16 @@ void t_php_generator::generate_service_rest(t_service* tservice) { ((t_base_type*)atype)->is_string_list()) { f_service_ << indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl; - } + } else if (atype->is_map()) { + f_service_ << + indent() << "$" << (*a_iter)->get_name() << " = json_decode($" << (*a_iter)->get_name() << ", true);" << endl; + } else if (atype->is_list()) { + f_service_ << + indent() << "$" << (*a_iter)->get_name() << " = explode(',', $" << (*a_iter)->get_name() << ");" << endl; + } else if (atype->is_set()) { + f_service_ << + indent() << "$" << (*a_iter)->get_name() << " = array_fill_keys(explode(',', $" << (*a_iter)->get_name() << "), 1);" << endl; + } } f_service_ << indent() << "return $this->impl_->" << (*f_iter)->get_name() << "(" << argument_list((*f_iter)->get_arglist()) << ");" << endl; -- 2.17.1