aboutsummaryrefslogtreecommitdiff
path: root/src/google/protobuf/compiler/php/php_generator.cc
diff options
context:
space:
mode:
authorBrent Shaffer <betterbrent@google.com>2018-06-19 22:20:56 +0200
committerPaul Yang <TeBoring@users.noreply.github.com>2018-06-19 13:20:56 -0700
commitabac8080004ce018287275e41de40f57800f97aa (patch)
tree783d78357b35f4f68df7980adf5452850bd3c656 /src/google/protobuf/compiler/php/php_generator.cc
parent7a23a2ea5e058d5b814a872c5797d45f0f55a2a6 (diff)
downloadprotobuf-abac8080004ce018287275e41de40f57800f97aa.tar.gz
protobuf-abac8080004ce018287275e41de40f57800f97aa.tar.bz2
protobuf-abac8080004ce018287275e41de40f57800f97aa.zip
adds PHP typehints for message setters (#4533)php-generated-dev
Diffstat (limited to 'src/google/protobuf/compiler/php/php_generator.cc')
-rw-r--r--src/google/protobuf/compiler/php/php_generator.cc16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/google/protobuf/compiler/php/php_generator.cc b/src/google/protobuf/compiler/php/php_generator.cc
index cdb2f509..0bfe10c9 100644
--- a/src/google/protobuf/compiler/php/php_generator.cc
+++ b/src/google/protobuf/compiler/php/php_generator.cc
@@ -664,10 +664,18 @@ void GenerateFieldAccessor(const FieldDescriptor* field, bool is_descriptor,
// Generate setter.
GenerateFieldDocComment(printer, field, is_descriptor, kFieldSetter);
- printer->Print(
- "public function set^camel_name^($var)\n"
- "{\n",
- "camel_name", UnderscoresToCamelCase(field->name(), true));
+ if (field->type() == FieldDescriptor::TYPE_MESSAGE && !field->is_repeated()) {
+ printer->Print(
+ "public function set^camel_name^(^typehint^ $var = null)\n"
+ "{\n",
+ "camel_name", UnderscoresToCamelCase(field->name(), true),
+ "typehint", "\\" + FullClassName(field->message_type(), is_descriptor));
+ } else {
+ printer->Print(
+ "public function set^camel_name^($var)\n"
+ "{\n",
+ "camel_name", UnderscoresToCamelCase(field->name(), true));
+ }
Indent(printer);