Add nested enum descriptor in php rumtime. (#3009)

pull/3011/head v3.3.0rc1
Paul Yang 8 years ago committed by GitHub
parent e64b618b21
commit fba2acd72e
  1. 3
      php/src/Google/Protobuf/Internal/DescriptorPool.php
  2. 6
      php/src/Google/Protobuf/descriptor.php
  3. 3
      php/tests/generated_class_test.php

@ -95,6 +95,9 @@ class DescriptorPool
foreach ($descriptor->getNestedType() as $nested_type) {
$this->addDescriptor($nested_type);
}
foreach ($descriptor->getEnumType() as $enum_type) {
$this->addEnumDescriptor($enum_type);
}
}
public function addEnumDescriptor($descriptor)

@ -210,6 +210,12 @@ class Descriptor
$nested_proto, $file_proto, $message_name_without_package));
}
// Handle nested enum.
foreach ($proto->getEnumType() as $enum_proto) {
$desc->addEnumType(EnumDescriptor::buildFromProto(
$enum_proto, $file_proto, $message_name_without_package));
}
// Handle oneof fields.
foreach ($proto->getOneofDecl() as $oneof_proto) {
$desc->addOneofDecl(

@ -839,7 +839,8 @@ class GeneratedClassTest extends TestBase
public function testMessageWithoutNamespace()
{
$m = new TestMessage();
$m->setOptionalNoNamespaceMessage(new NoNameSpaceMessage());
$sub = new NoNameSpaceMessage();
$m->setOptionalNoNamespaceMessage($sub);
$m->getRepeatedNoNamespaceMessage()[] = new NoNameSpaceMessage();
$n = new NoNamespaceMessage();

Loading…
Cancel
Save