-
会社のサービスを PHP 7 へ移行することに
-
移行するテストに、生け贄に OSS を PHP 7 へ移行することに
-
自作サービス
- Laravel 5.0
- CentOS 6.5
- PHP 5.4
- SQLite
-
PHP 5.6 <-> PHP 7 の差分を知ることが大切
- 公式ドキュメントが充実している
- http://php.net/manual/ja/migration70.php
-
PHP 7 らしさはとりあえず捨てる
- 新しい機能はひとまずおいておく
- 速度向上だけでもメリット
-
構成管理をすると、今後も楽
- Ansible / Itamae
-
ライブラリの対応
- Cake 2.x 以外は基本的に既に対応している
-
アプリを対応させる
- php7cc を使うと楽
- https://github.com/sstalle/php7cc
- phar で簡単に利用可能
- php7cc を使うと楽
-
テスト
- テストがあれば、容易に壊れてないか見れる
- Travis は既に対応
-
結果
- 20 〜 30 % の速度向上
-
OSS での経験を業務に還元することができた
- Laravel 5.1 を利用
- 他の勉強会では PHP 7 の話題が少ない
- WordPress 公式に PHP 7 対応の記述は存在ない
- 何の問題もなく 2 ヶ月動作してる
- プラグインの対応は分からない
- 公式に対応していると書いてないことだけ、不安
-
- EUC-JP 時代の神秘
-
Cake 2.7
-
PostgreSQL
-
さくら VPS
-
Docker を使って容易に PHP 7 へ移行
-
Cake 2.7.6 には
String
クラスがある- PHP 7 では
String
が予約語になったので、動かない - Cake 2.7.7 では
CakeText
が別途用意されているのでそれを利用
- PHP 7 では
-
PHP 5.6 のバグ修正は今年いっぱい
-
Cake
- メジャーバージョンとして 2 系と 3 系がある
- 現在の主流は 2 系
-
PHP 7 に対応したとのコメントが Cake 公式にある
-
PHP 7 に対応する PR にはコミットが多くある
- しかし、だいたいはインデント揃えたとかのコミット
- 大きな変更は 3 種類 + 1
- 新しく
Error
クラスが追加された- 今まで
Exception
が投げられてた所でError
が投げられる可能性 Throwable
インターフェイスが導入Error
導入に伴って、どちらもキャッチしたい時に使用
- 今まで
- 型宣言
- PHP 5.6 ではタイプヒンティングと呼ばれていた
- 16 進数周りの変更
chr('0x97')
とやると Notice になる
- 新しく
-
PHP 7 は書きやすくなったというより、読みやすくなった
-
株式会社インテリジェンス
-
サーバーサイド: HHVM/Hack
-
バッチ: Golang
-
双方の両立を目指す
- 組織の成果
- メンバーの挑戦
-
なぜ Hack
- コアメンバーが PHPer
- 型がある
- ダメだったら PHP へフォールバックできる
-
フレームワーク
- FuelPHP
- フレームワークは PHP で、アプリケーション部分は Hack で記述
-
Hack の利点
- 型
- ラムダ式
- コレクション
- 静的解析が可能 (hh_client)
-
HHVM は安定しているか?
- 以前は不安定だったが、最近は安定している
- プロダクション環境でも問題ない
-
au スマートパスの開発
-
PHP 7 の性能の話
-
フレームワーク
- yii
- 共産圏の秘密兵器
-
LEMP
- CentOS
- nginx
- PHP + PHP-FPM
- MySQL 5.6
-
インフラ
- 構築: Chef + Packaer
- テスト: Test Kitchen
- 開発環境: Vagrant
- 攻撃: Catling
-
結果
- PHP 5.6 のほうが早いw
- PHP 7 にしたからといって、必ず早くなるわけではない