Index: third_party/protobuf/php/README.md |
diff --git a/third_party/protobuf/php/README.md b/third_party/protobuf/php/README.md |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ec92d329b6ef00422b0499aa0844fc5d1febff76 |
--- /dev/null |
+++ b/third_party/protobuf/php/README.md |
@@ -0,0 +1,99 @@ |
+This directory contains the Protocol Buffers runtime implementation via both a |
+pure PHP package and a native c extension. The pure PHP package is intended to |
+provide usability to wider range of PHP platforms, while the c extension is |
+intended to provide higher performance. Both implementations provide the same |
+runtime APIs and share the same generated code. Users don’t need to re-generate |
+code for the same proto definition when they want to switch the implementation |
+later. |
+ |
+Both implementations make use of generated PHP code that defines message and |
+enum types in PHP. We strongly recommend using protoc's PHP generation support |
+with .proto files. The build process in this directory only installs the |
+extension/package; you need to install protoc as well to have PHP code |
+generation functionality. |
+ |
+## Requirements |
+ |
+To use PHP runtime library requires: |
+ |
+- C extension: PHP 5.5.x or 5.6.x. |
+- PHP package: PHP 5.5, 5.6 or 7. |
+ |
+## Installation |
+ |
+### C Extension |
+ |
+#### Prerequirements |
+ |
+To install the c extension, the following tools are needed: |
+* autoconf |
+* automake |
+* libtool |
+* make |
+* gcc |
+* pear |
+* pecl |
+ |
+On Ubuntu, you can install them with: |
+``` |
+sudo apt-get install php-pear php5-dev autoconf automake libtool make gcc |
+``` |
+On other platforms, please use the corresponding package managing tool to |
+install them before proceeding. |
+ |
+#### Installation from Source (Building extension) |
+ |
+To build the c extension, run the following command: |
+``` |
+cd ext/google/protobuf |
+pear package |
+sudo pecl install protobuf-{VERSION}.tgz |
+``` |
+ |
+#### Installation from PECL |
+ |
+When we release a version of Protocol Buffers, we will upload the extension to |
+[PECL](https://pecl.php.net/). To use this pre-packaged extension, simply |
+install it as you would any other extension: |
+ |
+``` |
+sudo pecl install protobuf-{VERSION} |
+``` |
+ |
+### PHP Package |
+ |
+#### Installation from composer |
+ |
+Simply add "google/protobuf" to the 'require' section of composer.json in your |
+project. |
+ |
+### Protoc |
+ |
+Once the extension or package is installed, if you wish to generate PHP code |
+from a `.proto` file, you will also want to install the Protocol Buffers |
+compiler (protoc), as described in this repository's main `README` file. The |
+version of `protoc` included in the latest release supports the `--php_out` |
+option to generate PHP code: |
+``` |
+protoc --php_out=out_dir test.proto |
+``` |
+ |
+## Usage |
+ |
+For general guide: |
+ https://developers.google.com/protocol-buffers/phptutorial/ |
+For generated code: |
+ https://developers.google.com/protocol-buffers/docs/reference/php-generated |
+ |
+Known Issues |
+------------ |
+ |
+* Missing native support for well known types. |
+* Missing support for proto2. |
+* No API provided for clear/copy messages. |
+* No API provided for encoding/decoding with stream. |
+* Map fields may not be garbage-collected if there is cycle reference. |
+* No debug information for messages in c extension. |
+* HHVM not tested. |
+* C extension not tested on windows, mac, php 7.0. |
+* Message name cannot be Empty. |