Но поведение PHP с protoc_builtin отличается от поведения фактического плагина protoc?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Но поведение PHP с protoc_builtin отличается от поведения фактического плагина protoc?

Сообщение Anonymous »

Я переношу проект PHP с использованием protoc в интерфейс командной строки Buf. Чтобы обеспечить обратную совместимость, я пытаюсь заставить Buf выдавать более или менее тот же результат, что и встроенный плагин PHP.
Я настроил свой buf.gen.yaml на использование protoc_builtin: php в качестве целевого плагина и исключил все параметры, так как protoc раньше также не принимал никаких аргументов.
Когда я запускаю bufgenerate, но GPBMtadata двоичные файлы теперь находятся в неправильном каталоге. protoc помещает их в каталог на верхнем уровне вашего вывода, копируя вашу структуру каталогов (даже не путь к вашему пакету, а только каталоги).
Вот моя структура каталогов:

Код: Выделить всё

src
| users
| user.proto
| items
| user_item.proto
Вот моя конфигурация:

Код: Выделить всё

version: v2

managed:
enabled: true

inputs:
- directory: .
paths:
- src

plugins:
- protoc_builtin: php
out: buf_out
Запуск bufgenerate (с указанной выше конфигурацией) дает следующий результат:

Код: Выделить всё

buf_out
| Users
| User.php
| Metadata
| User.php
| Items
| UserItem.proto
| Metadata
| UserItem.php
Выполнение протокола -I=. php_out=builtin_out $(find src -type f -name '*proto') дает следующее:

Код: Выделить всё

builtin_out
| Metadata
| Users
| User.php
| Items
| User_item.proto
| Users
| User.php
| Items
| User_item.proto
Обратите внимание также на различия в преобразовании Snakecase. Очевидно, что Buf делает больше, чем сообщает нам документация.
Есть ли в Buf какие-либо флаги, которые позволяют мне вернуться к поведению протокола. Или я как-то ошибся версией? (кстати, используя 1.45.0)

Подробнее здесь: https://stackoverflow.com/questions/791 ... otoc-plugi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»