本文整理汇总了PHP中Google\Protobuf\DescriptorProto::getExtensionList方法的典型用法代码示例。如果您正苦于以下问题:PHP DescriptorProto::getExtensionList方法的具体用法?PHP DescriptorProto::getExtensionList怎么用?PHP DescriptorProto::getExtensionList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Google\Protobuf\DescriptorProto
的用法示例。
在下文中一共展示了DescriptorProto::getExtensionList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getUniqueFieldName
/**
* @param \google\protobuf\DescriptorProto $descriptor
* @param string $default
*
* @return string
*/
protected function getUniqueFieldName(DescriptorProto $descriptor, $default)
{
$extensions = $descriptor->getExtensionList() ?: [];
$fields = $descriptor->getFieldList() ?: [];
$name = $default;
$names = [];
$count = 0;
foreach ($fields as $field) {
$names[$field->getName()] = true;
}
foreach ($extensions as $field) {
$names[$field->getName()] = true;
}
while (isset($names[$name])) {
$name = $default . $count++;
}
return $name;
}
示例2: generateMessage
/**
* @param \google\protobuf\FileDescriptorProto $fileDescriptor
* @param \google\protobuf\DescriptorProto $messageDescriptor
* @param string $parent
*
* @return \Protobuf\Compiler\Entity
*/
protected function generateMessage(FileDescriptorProto $fileDescriptor, DescriptorProto $messageDescriptor, $parent = null)
{
$type = Entity::TYPE_MESSAGE;
$name = $messageDescriptor->getName();
$entity = new Entity($type, $name, $messageDescriptor, $fileDescriptor, $parent);
if ($messageDescriptor->hasExtensionList() && $this->containsProtobufExtension($messageDescriptor->getExtensionList())) {
$entity->setProtobufExtension(true);
}
return $entity;
}