Download the PHP package / without Composer

On this page you can find all versions of the php package /. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?
/
Rate from 1 - 5
Rated 5.00 based on 2 reviews

Informations about the package

Protobuf for PHP

Protobuf for PHP is an implementation of Google's Protocol Buffers for the PHP language, supporting its binary data serialization and including a protoc plugin to generate PHP classes from .proto files.

Great effort has been put into generating PHP files that include all sort of type hints to aide IDE's with autocompletion. Therefore, it can not only be used to communicate with Protocol Buffers services but also as a generation tool for data objects no matter what the final serialization is.

For more information see the included man pages.

Requirements

Features

Working

¹ Only serialization is supported in this codec

Future

Example usage

Installation

composer install

Known issues

Types

PHP is very weak when dealing with numbers processing. Several work arounds have been applied to the standard binary codec to reduce incompatibilities between Protobuf types and PHP ones.

Strings

The binary codec expects strings to be encoded using UTF-8. PHP does not natively support string encodings, PHP's string data type is basically a length delimited stream of bytes, so it's not trivial to include automatic encoding conversion into the library encoding and decoding routines. Instead of trying to guess or offer a configuration interface for the encoding, the binary codec will process the string type just as it would process byte one, delegating on your application the task of encoding or decoding in the desired character set.

Memory usage

Large messages might be troublesome since the way the library is modelled does not allow to parse or serialize messages as streams, instead the whole operation is performed in memory, which allows for faster processing but could consume too much RAM if messages are too large.

Unknown fields

Since wire types are different across different codec's formats, it's not possible to transcode unkwnon fields consumed in one codec to another. This means, for example, that when consuming a message using the binary codec, if it contains unknown fields they won't be included when serializing the message using the Json codec.

Generating PHP classes

The generation tool is designed to be run as a protoc plugin, thus it should work with any proto file supported by the official compiler.

protoc --plugin=protoc-gen-php --php_out=./build tutorial.proto

To make use of non-standard options in your proto files (like php.namespace) you'll have to import the php.proto file included with the library. It's location will depend on where you've installed this library.

protoc -I=./Protobuf-PHP/library/DrSlump/Protobuf/Compiler/protos \
       --plugin=protoc-gen-php --php_out=./build tutorial.proto

In order to make your life easier, the supplied protoc plugin offers an additional execution mode, where it acts as a wrapper for the protoc invocation. It will automatically include the php.proto path so you don't need to worry about it.

protoc-gen-php -o ./build tutorial.proto

Testing

mkdir -p test/generated ./protoc-gen-php.php -o test/generated -Dmultifile=true -i ./test/library/DrSlump/Protobuf/Test/protos/ ./test/library/DrSlump/Protobuf/Test/protos/*.proto ./vendor/bin/phpunit


All versions of with dependencies

PHP Build Version
Package Version
Requires php Version >=5.5.0
ext-mbstring Version *
phpoption/phpoption Version >=1.6.0
symfony/console Version 3.4.*
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package / contains the following files

Loading the files please wait ....