Буфер протокола для PHP

Каковы доступные библиотеки для использования protobuf в PHP?

Ответы

Ответ 1

Protocol_Buffer_for_PHP

Последнее обновление в мае 2009 года

Реализация "Протокола протоколов Google" для PHP включает анализ...

Список проблем: http://code.google.com/p/pb4php/issues/list

Protobuf-PHP

Последнее обновление в апреле 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);

protoc-gen-php

Последнее обновление: 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 поставляется с полной документацией.