当前位置: 首页>>代码示例>>PHP>>正文


PHP DescriptorProto::file方法代码示例

本文整理汇总了PHP中Google\Protobuf\DescriptorProto::file方法的典型用法代码示例。如果您正苦于以下问题:PHP DescriptorProto::file方法的具体用法?PHP DescriptorProto::file怎么用?PHP DescriptorProto::file使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Google\Protobuf\DescriptorProto的用法示例。


在下文中一共展示了DescriptorProto::file方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: generate

 public function generate(Printer $printer)
 {
     foreach ($this->descriptor->getEnumType() as $enum) {
         $generator = new EnumGenerator($this->context, $enum, $this->file_list);
         if ($this->descriptor->file()->getOptions()->GetExtension("php")->getMultipleFiles()) {
             $child_name = $generator->fileName();
             $this->file_list[] = $child_name;
             $child_printer = new Printer($this->context->open($child_name), "`");
             $generator->generate($child_printer);
         }
     }
     foreach ($this->descriptor->getNestedType() as $message) {
         $generator = new MessageGenerator($this->context, $message, $this->file_list);
         if ($this->descriptor->file()->getOptions()->GetExtension("php")->getMultipleFiles()) {
             $child_name = $generator->fileName();
             $this->file_list[] = $child_name;
             $child_printer = new Printer($this->context->open($child_name), "`");
             $generator->generate($child_printer);
         }
     }
     if ($this->descriptor->file()->getOptions()->getExtension("php")->getMultipleFiles()) {
         $printer->put("<?php\n");
     }
     $this->printUseNameSpaceIfNeeded($printer);
     $printer->put("/**\n" . " * Generated by the protocol buffer compiler.  DO NOT EDIT!\n" . " * source: `filename`\n" . " *\n", "filename", $this->descriptor->file()->getName());
     if ($dict = SourceInfoDictionary::get($this->descriptor->file()->getName(), $this->descriptor->getName(), "message")) {
         /* @var $dict \google\protobuf\SourceCodeInfo\Location */
         if ($dict->getLeadingComments()) {
             $lines = preg_split("/\r?\n/", trim($dict->getLeadingComments()));
             foreach ($lines as $line) {
                 if ($line[0] == " ") {
                     $line = substr($line, 1);
                 }
                 $printer->put(" * `comment`\n", "comment", $line);
             }
             $printer->put(" *\n");
         }
     }
     $this->printMagicMethod($printer);
     $printer->put(" */\n");
     $printer->put("class `name` extends `base`\n{\n", "name", Helper::getClassName($this->descriptor, false), "base", Helper::getBaseClassName($this->descriptor));
     $printer->indent();
     $this->printTraitsInsertionPoint($printer);
     $this->printProperties($printer);
     $printer->put("// @@protoc_insertion_point(class_scope:`name`)\n\n", "name", $this->descriptor->full_name);
     $this->printGetDescriptor($printer);
     $printer->outdent();
     $printer->put("}\n");
     if ($this->enclose_namespace_) {
         $printer->outdent();
         $printer->put("}\n\n");
     }
     $this->printExtensions();
     PragmaticInserter::execute($this->descriptor, $this->context);
 }
开发者ID:asamaru7,项目名称:protoc-gen-php,代码行数:55,代码来源:MessageGenerator.php


注:本文中的Google\Protobuf\DescriptorProto::file方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。