aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/php/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'src/php/README.md')
-rw-r--r--src/php/README.md143
1 files changed, 109 insertions, 34 deletions
diff --git a/src/php/README.md b/src/php/README.md
index 40c79e0dd4..42ddb2d731 100644
--- a/src/php/README.md
+++ b/src/php/README.md
@@ -7,51 +7,126 @@ This directory contains source code for PHP implementation of gRPC layered on sh
Pre-Alpha : This gRPC PHP implementation is work-in-progress and is not expected to work yet.
+## ENVIRONMENT
-## LAYOUT
+Prerequisite: PHP 5.5 or later, PHPUnit, pecl
-Directory structure is as generated by the PHP utility
-[ext_skel](http://php.net/manual/en/internals2.buildsys.skeleton.php)
+```sh
+sudo apt-get install php5 php5-dev phpunit php-pear
+```
-## ENVIRONMENT
+## Build from Homebrew
-Install `php5` and `php5-dev`.
+On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][]. Run the following command to
+install gRPC.
+
+```sh
+$ curl -fsSL https://goo.gl/getgrpc | bash -s php
+```
-To run the tests, additionally install `php5-readline` and `phpunit`.
+This will download and run the [gRPC install script][] and compile the gRPC PHP extension.
-Alternatively, build and install PHP 5.5 or later from source with standard
-configuration options.
+## Build from Source
-To also download and install protoc and the PHP code generator.
+Clone this repository
-```bash
-apt-get install -y procps
-curl -sSL https://get.rvm.io | sudo bash -s stable --ruby
-git clone git@github.com:google/protobuf.git
-cd protobuf
-./configure
-make
-make install
-git clone git@github.com:murgatroid99/Protobuf-PHP.git
-cd Protobuf-PHP
-rake pear:package version=1.0
-pear install Protobuf-1.0.tgz
+```
+$ git clone https://github.com/grpc/grpc.git
```
-## BUILDING
+Build and install the Protocol Buffers compiler (protoc)
- 1. In ./ext/grpc, run the command `phpize` (distributed with PHP)
- 2. Run `./ext/grpc/configure`
- 3. In ./ext/grpc, run `make` and `sudo make install`
- 4. In your php.ini file, add the line `extension=grpc.so` to load the
- extension at PHP startup.
+```
+$ cd grpc
+$ git pull --recurse-submodules && git submodule update --init --recursive
+$ cd third_party/protobuf
+$ ./autogen.sh
+$ ./configure
+$ make
+$ make check
+$ sudo make install
+```
-## PHPUnit
+Build and install the gRPC C core libraries
+
+```sh
+$ cd grpc
+$ make
+$ sudo make install
+```
-This repo now has PHPUnit tests, which can by run by executing
-`./bin/run_tests.sh` after building.
+Install the gRPC PHP extension
+
+```sh
+$ sudo pecl install grpc
+```
+
+OR
+
+```sh
+$ cd grpc/src/php/ext/grpc
+$ phpize
+$ ./configure
+$ make
+$ sudo make install
+```
+
+In your php.ini file, add the line `extension=grpc.so` to load the extension
+at PHP startup.
+
+Install Composer
+
+```sh
+$ cd grpc/src/php
+$ curl -sS https://getcomposer.org/installer | php
+$ php composer.phar install
+```
+
+## Unit Tests
+
+Run unit tests
+
+```sh
+$ cd grpc/src/php
+$ ./bin/run_tests.sh
+```
+
+## Generated Code Tests
+
+Install `protoc-gen-php`
+
+```sh
+$ cd grpc/src/php/vendor/datto/protobuf-php
+$ gem install rake ronn
+$ rake pear:package version=1.0
+$ sudo pear install Protobuf-1.0.tgz
+```
+
+Generate client stub code
+
+```sh
+$ cd grpc/src/php
+$ ./bin/generate_proto_php.sh
+```
+
+Run a local server serving the math services
+
+ - Please see [Node][] on how to run an example server
+
+```sh
+$ cd grpc/src/node
+$ npm install
+$ nodejs examples/math_server.js
+```
+
+Run the generated code tests
+
+```sh
+$ cd grpc/src/php
+$ ./bin/run_gen_code_test.sh
+```
-There is also a generated code test (`./bin/run_gen_code_test.sh`), which tests
-the stub `./tests/generated_code/math.php` against a running localhost server
-serving the math service. That stub is generated from
-`./tests/generated_code/math.proto`.
+[homebrew]:http://brew.sh
+[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
+[gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
+[Node]:https://github.com/grpc/grpc/tree/master/src/node/examples