Каковы доступные библиотеки для использования protobuf в PHP?
Буфер протокола для PHP
Ответ 1
Последнее обновление в мае 2009 года
Реализация "Протокола протоколов Google" для PHP включает анализ...
Список проблем: http://code.google.com/p/pb4php/issues/list
Последнее обновление в апреле 2011 года
Protobuf for PHP - это реализация буферов протокола Google для языка PHP, поддерживающая сериализацию двоичных данных и включающий плагин protoc для генерации PHP-классов из .proto файлов.
Большие усилия были направлены на создание PHP файлов, содержащих все типы подсказок для поддержки IDE с автозавершением. Поэтому его можно использовать не только для связи с службами протокольных буферов, но и как инструмент генерации для объектов данных независимо от того, какова конечная сериализация.
Пример:
$person = new Tutorial\Person();
$person->name = 'DrSlump';
$person->setId(12);
$book = new Tutorial\AddressBook();
$book->addPerson($person);
// Use default codec
$data = $book->serialize();
// Use custom codec
$codec = new \DrSlump\Protobuf\Codec\Binary();
$data = $codec->encode($book);
// ... or ...
$data = $book->serialize($codec);
Последнее обновление: 05 декабря 2010 г.
Это плагин генератора буфера генератора PHP для протокола protoc. Он генерирует PHP-код из файла .proto.
Ответ 2
Существует также https://github.com/drslump/Protobuf-PHP
Обновлено декабрь 2013 года.
Требования (со страницы Github):
- PHP 5.3
- Pear Console_CommandLine (для инструмента оболочки protoc)
- Протокол компилятора Google версии 2.3 или выше
-
Расширения GMP или BC Math ¹
¹ Требуется только для отрицательных значений в типах int32, int64 или fixed64. См. Раздел известных проблем.
Ответ 3
Если производительность вашей проблемы, вы можете попробовать PHP Protobuf.
Это реализация буферов PHP-протоколов, написанная как расширение в C. Даже при том, что код C не имеет внешних зависимостей, включая оригинальную реализацию Google.
PHP Protobuf поставляется с полной документацией.