Google\Cloud\PhpArray::decodeMessage PHP Метод

decodeMessage() защищенный Метод

The only addition here is converting camel case field names to snake case.
protected decodeMessage ( DrSlump\Protobuf\Message $message, $data )
$message DrSlump\Protobuf\Message
    protected function decodeMessage(Protobuf\Message $message, $data)
    {
        // Get message descriptor
        $descriptor = Protobuf::getRegistry()->getDescriptor($message);
        foreach ($data as $key => $v) {
            // Get the field by tag number or name
            $field = $this->useTagNumber ? $descriptor->getField($key) : $descriptor->getFieldByName($this->toSnakeCase($key));
            // Unknown field found
            if (!$field) {
                $unknown = new Protobuf\Codec\PhpArray\Unknown($key, gettype($v), $v);
                $message->addUnknown($unknown);
                continue;
            }
            if ($field->isRepeated()) {
                // Make sure the value is an array of values
                $v = is_array($v) && is_int(key($v)) ? $v : array($v);
                foreach ($v as $k => $vv) {
                    $v[$k] = $this->filterValue($vv, $field);
                }
            } else {
                $v = $this->filterValue($v, $field);
            }
            $message->_set($field->getNumber(), $v);
        }
        return $message;
    }