/** * @param $input raw protocol buffers message * @return \google\protobuf\compiler\CodeGeneratorResponse */ public function compile($input) { $packages = array(); $req = \ProtocolBuffers::decode('google\\protobuf\\compiler\\CodeGeneratorRequest', $input); $this->setupFullName($req); $this->setupDictionary($req); /* @var $req \google\protobuf\compiler\CodeGeneratorRequest */ $parameter = array(); $resp = new \google\protobuf\compiler\CodeGeneratorResponse(); $context = new GeneratorContext($resp); $gen = new Generator(); $error = new StringStream(); PragmaticInserter::loadYaml(".protoc.php.yml"); foreach ($req->getProtoFile() as $file_descriptor) { if (!in_array($file_descriptor->getName(), $req->getFileToGenerate())) { //error_log($file_descriptor->getName()); continue; } $gen->generate($file_descriptor, $parameter, $context, $error); } $resp->setError($error); return $resp; }