У меня есть protobuf emun, который я использую в качестве поля в другом сообщении. Я также добавил пользовательский параметр в это перечисление, чтобы установить значение текстовой версии для каждого параметра.
syntax = "proto3";
import "google/protobuf/descriptor.proto";
package Message;
extend google.protobuf.EnumValueOptions {
optional string name = 10001;
}
enum ScreenshotStatus {
UNKNOWN = 0 [(name) = "unknown"];
IN_QUEUE = 1 [(name) = "in_queue"];
PROGRESSING = 2 [(name) = "[progressing"];
FINISHED = 3 [(name) = "finished"];
RUNNING = 4 [(name) = "running"];
}
Однако, когда я генерирую php классы для protobufs, я получаю простой старый класс без каких-либо методов, чтобы получить имя enum.
class ScreenshotStatus
{
/**
* Generated from protobuf enum <code>UNKNOWN = 0 [(.Message.name) = "unknown"];</code>
*/
const UNKNOWN = 0;
}
Есть ли способ получить значение имени для ScreenshotStatus :: UNKNOWN и наоборот — получить правильное перечисление по имени «unknown».
Задача ещё не решена.
Других решений пока нет …