Google App EngineでPHP7.2が使えるようになったので試す

概要

GAEにphp7.2のランタイムktkr
やるぞ

Google Cloud Platform Blog: Bringing the best of serverless to you

とりあえずphp7系を試す

phpを書く

ルーティング用コードを記述
app.yamlhandlers はphp7では効かないので index.php へ記述する

// info.php
<?php
function double(int $num): int {
  return $num * 2;
}
var_dump(double(4));

phpinfo

// info.php
<?php
phpinfo();

7系からの型指定

// type.php
<?php

function double(int $num): int {
  return $num * 2
}

var_dump(double(4));

ローカルで動作確認

7系で動くことを確認

$ docker run -it -v `pwd`:/app -w /app  -p 8000:8000 php:7.2-alpine php -S 0.0.0.0:8000
PHP 7.2.8 Development Server started at Wed Jul 25 04:15:30 2018
Listening on http://0.0.0.0:8000
Document root is /app
Press Ctrl-C to quit.
$ curl localhost:8000/type.php
int(8)
$ open http://localhost:8000/index.php

5系で動かないことを確認

$ docker run -it -v `pwd`:/app -w /app  -p 8000:8000 php:5.5-alpine php -S 0.0.0.0:8000
PHP 5.5.38 Development Server started at Wed Jul 25 04:22:04 2018
Listening on http://0.0.0.0:8000
Document root is /app
Press Ctrl-C to quit.
$ curl localhost:8000/type.php
<br />
<b>Parse error</b>:  syntax error, unexpected ':', expecting '{' in <b>/app/type.php</b> on line <b>3</b><br />
$ open http://localhost:8000/index.php

GAEにデプロイ

app.yamlを記述

runtime: php72
api_version: 1
service: php-test

確認

f:id:y-ohgi:20180824211311p:plain

所感

handlers が動かなくて地味にハマった