PHP: update README and apache/nginx examples

pull/9574/head
Stanley Cheung 8 years ago
parent e805ba0bec
commit aaf2bbaa58
  1. 2
      composer.json
  2. 49
      src/php/README.md
  3. 2
      src/php/composer.json
  4. 15
      src/php/tests/generated_code/math_client.php
  5. 2
      templates/composer.json.template
  6. 2
      templates/src/php/composer.json.template

@ -7,7 +7,7 @@
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"google/protobuf": "v3.1.0-alpha-1" "google/protobuf": "v3.1.0"
}, },
"require-dev": { "require-dev": {
"google/auth": "v0.9" "google/auth": "v0.9"

@ -12,24 +12,28 @@ shared C library.
* `composer` * `composer`
* `phpunit` (optional) * `phpunit` (optional)
**Ubuntu/Debian:** **Install PHP and PECL on Ubuntu/Debian:**
```sh ```sh
$ sudo apt-get install php5 php5-dev $ sudo apt-get install php5 php5-dev php-pear
OR
$ sudo apt-get install php7.0 php7.0-dev php-pear
``` ```
**PEAR/PECL:** **Install PECL on Mac:**
```sh ```sh
$ curl -O http://pear.php.net/go-pear.phar $ curl -O http://pear.php.net/go-pear.phar
$ sudo php -d detect_unicode=0 go-pear.phar $ sudo php -d detect_unicode=0 go-pear.phar
``` ```
**Composer:** **Install Composer (Linux or Mac):**
```sh ```sh
$ curl -sS https://getcomposer.org/installer | php $ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer $ sudo mv composer.phar /usr/local/bin/composer
``` ```
**PHPUnit:** **Install PHPUnit (Linux or Mac):**
```sh ```sh
$ wget https://phar.phpunit.de/phpunit-old.phar $ wget https://phar.phpunit.de/phpunit-old.phar
$ chmod +x phpunit-old.phar $ chmod +x phpunit-old.phar
@ -48,6 +52,14 @@ This will compile and install the gRPC PHP extension into the standard PHP
extension directory. You should be able to run the [unit tests](#unit-tests), extension directory. You should be able to run the [unit tests](#unit-tests),
with the PHP extension installed. with the PHP extension installed.
**Update php.ini**
Add this line to your `php.ini` file, e.g. `/etc/php5/cli/php.ini`
```sh
extension=grpc.so
```
**Add the gRPC PHP library as a Composer dependency** **Add the gRPC PHP library as a Composer dependency**
@ -55,7 +67,7 @@ You need to add this to your project's `composer.json` file.
``` ```
"require": { "require": {
"grpc/grpc": "v1.0.0" "grpc/grpc": "v1.1.0"
} }
``` ```
@ -96,14 +108,6 @@ $ make
$ sudo make install $ sudo make install
``` ```
### Update php.ini
Add this line to your `php.ini` file, e.g. `/etc/php5/cli/php.ini`
```sh
extension=grpc.so
```
## Unit Tests ## Unit Tests
You will need the source code to run tests You will need the source code to run tests
@ -138,7 +142,7 @@ $ composer install
### Protobuf compiler ### Protobuf compiler
Again if you don't have it already, you need to install the protobuf compiler Again if you don't have it already, you need to install the protobuf compiler
`protoc`, version 3.1.0+. `protoc`, version 3.2.0+.
If `protoc` hasn't been installed, you can download the `protoc` binaries from If `protoc` hasn't been installed, you can download the `protoc` binaries from
[the protocol buffers Github repository](https://github.com/google/protobuf/releases). [the protocol buffers Github repository](https://github.com/google/protobuf/releases).
@ -209,6 +213,7 @@ $ sudo apt-get install apache2
``` ```
Add this line to your `php.ini` file, e.g. `/etc/php5/apache2/php.ini` Add this line to your `php.ini` file, e.g. `/etc/php5/apache2/php.ini`
or `/etc/php/7.0/apache2/php.ini`
```sh ```sh
extension=grpc.so extension=grpc.so
@ -235,7 +240,7 @@ $ cd grpc/src/php
$ composer install $ composer install
``` ```
Make sure you have generated the client stub `math.php` Make sure you have generated the client stubs
```sh ```sh
$ ./bin/generate_proto_php.sh $ ./bin/generate_proto_php.sh
@ -247,11 +252,10 @@ Copy the `math_client.php` file into your Apache document root, e.g.
$ cp tests/generated_code/math_client.php /var/www/html $ cp tests/generated_code/math_client.php /var/www/html
``` ```
You may have to fix the first two lines to point the includes to your installation: You may have to fix the first line to point the includes to your installation:
```php ```php
include 'vendor/autoload.php'; include 'vendor/autoload.php';
include 'tests/generated_code/math.php';
``` ```
Connect to `localhost/math_client.php` in your browser, or run this from command line: Connect to `localhost/math_client.php` in your browser, or run this from command line:
@ -266,6 +270,10 @@ Install `nginx` and `php5-fpm`, in addition to `php5` above
```sh ```sh
$ sudo apt-get install nginx php5-fpm $ sudo apt-get install nginx php5-fpm
OR
$ sudo apt-get install nginx php7.0-fpm
``` ```
Add this line to your `php.ini` file, e.g. `/etc/php5/fpm/php.ini` Add this line to your `php.ini` file, e.g. `/etc/php5/fpm/php.ini`
@ -305,7 +313,7 @@ $ cd grpc/src/php
$ composer install $ composer install
``` ```
Make sure you have generated the client stub `math.php` Make sure you have generated the client stubs
```sh ```sh
$ ./bin/generate_proto_php.sh $ ./bin/generate_proto_php.sh
@ -317,11 +325,10 @@ Copy the `math_client.php` file into your Nginx document root, e.g.
$ cp tests/generated_code/math_client.php /var/www/html $ cp tests/generated_code/math_client.php /var/www/html
``` ```
You may have to fix the first two lines to point the includes to your installation: You may have to fix the first line to point the includes to your installation:
```php ```php
include 'vendor/autoload.php'; include 'vendor/autoload.php';
include 'tests/generated_code/math.php';
``` ```
Connect to `localhost/math_client.php` in your browser, or run this from command line: Connect to `localhost/math_client.php` in your browser, or run this from command line:

@ -5,7 +5,7 @@
"version": "1.2.0", "version": "1.2.0",
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"google/protobuf": "v3.1.0-alpha-1" "google/protobuf": "v3.1.0"
}, },
"require-dev": { "require-dev": {
"google/auth": "v0.9" "google/auth": "v0.9"

@ -32,9 +32,10 @@
* *
*/ */
# Fix the following two lines to point to your installation # Fix the following line to point to your installation
# This assumes that you are using protoc 3.2.0+ and the generated stubs
# were being autoloaded via composer.
include 'vendor/autoload.php'; include 'vendor/autoload.php';
include 'tests/generated_code/math.php';
function p($line) function p($line)
{ {
@ -43,7 +44,7 @@ function p($line)
$host = 'localhost:50051'; $host = 'localhost:50051';
p("Connecting to host: $host"); p("Connecting to host: $host");
$client = new math\MathClient($host, [ $client = new Math\MathClient($host, [
'credentials' => Grpc\ChannelCredentials::createInsecure(), 'credentials' => Grpc\ChannelCredentials::createInsecure(),
]); ]);
p('Client class: '.get_class($client)); p('Client class: '.get_class($client));
@ -52,7 +53,7 @@ p('');
p('Running unary call test:'); p('Running unary call test:');
$dividend = 7; $dividend = 7;
$divisor = 4; $divisor = 4;
$div_arg = new math\DivArgs(); $div_arg = new Math\DivArgs();
$div_arg->setDividend($dividend); $div_arg->setDividend($dividend);
$div_arg->setDivisor($divisor); $div_arg->setDivisor($divisor);
$call = $client->Div($div_arg); $call = $client->Div($div_arg);
@ -65,7 +66,7 @@ p('');
p('Running server streaming test:'); p('Running server streaming test:');
$limit = 7; $limit = 7;
$fib_arg = new math\FibArgs(); $fib_arg = new Math\FibArgs();
$fib_arg->setLimit($limit); $fib_arg->setLimit($limit);
$call = $client->Fib($fib_arg); $call = $client->Fib($fib_arg);
$result_array = iterator_to_array($call->responses()); $result_array = iterator_to_array($call->responses());
@ -79,7 +80,7 @@ p('');
p('Running client streaming test:'); p('Running client streaming test:');
$call = $client->Sum(); $call = $client->Sum();
for ($i = 0; $i <= $limit; ++$i) { for ($i = 0; $i <= $limit; ++$i) {
$num = new math\Num(); $num = new Math\Num();
$num->setNum($i); $num->setNum($i);
$call->write($num); $call->write($num);
} }
@ -91,7 +92,7 @@ p('');
p('Running bidi-streaming test:'); p('Running bidi-streaming test:');
$call = $client->DivMany(); $call = $client->DivMany();
for ($i = 0; $i < 7; ++$i) { for ($i = 0; $i < 7; ++$i) {
$div_arg = new math\DivArgs(); $div_arg = new Math\DivArgs();
$dividend = 2 * $i + 1; $dividend = 2 * $i + 1;
$divisor = 3; $divisor = 3;
$div_arg->setDividend($dividend); $div_arg->setDividend($dividend);

@ -9,7 +9,7 @@
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"google/protobuf": "v3.1.0-alpha-1" "google/protobuf": "v3.1.0"
}, },
"require-dev": { "require-dev": {
"google/auth": "v0.9" "google/auth": "v0.9"

@ -7,7 +7,7 @@
"version": "${settings.php_version.php_composer()}", "version": "${settings.php_version.php_composer()}",
"require": { "require": {
"php": ">=5.5.0", "php": ">=5.5.0",
"google/protobuf": "v3.1.0-alpha-1" "google/protobuf": "v3.1.0"
}, },
"require-dev": { "require-dev": {
"google/auth": "v0.9" "google/auth": "v0.9"

Loading…
Cancel
Save