2016年11月3日にPHPカンファレンス2016が開催されました。PHPカンファレンスは、国内最大のPHPイベントとして2000年より毎年秋に開催されています。PHPやその周辺技術についての情報交換、PHPユーザーの交流が行われています。2016年のテーマは「?> NEXT」。PHPの新機能や、PHPを使ったプログラミングにおける最新の話題が取り上げられました。
カンファレンス最初のゲストスピーカーセッションは、日本PHPユーザ会の廣川類さん。「PHPの今とこれから2016」と題して、もうすぐリリース予定のPHP7.1の新機能を始め、PHP関連の最近の話題を紹介しました。
PHPの振り返り、現在のバージョン分布
PHPは1994年に公開され今年22歳にる歴史が長いプログラミング言語になります。20年以上に渡り使われている言語は珍しく、その理由として「コンセプトが良い」「広く使われている」「進化している」ことを挙げ、PHPはWebのプラットフォームになっていると話しました。
世界で使用されているPHPのバージョンについて、「直近でPHP7がリリースされたが、多数派はまだバージョン5.6を使っている」「PHP7.0を利用したサービスはまだ少なく、EOL(End Of Life)となったPHP5.5以前のユーザーは81%以上いる」と図示しました。
PHPのリリースサイクルは1年で、ライフサイクルは3年です。多数派のPHP5.6のセキュリティ修正期間は2017年8月28日までのため、「PHP5.6が多数派の現状、セキュリティ修正期間は議論が必要」と述べていました。
PHP5からPHP7での高速化
PHP7ではアルゴリズムが改善され、速度パフォーマンスが大きく上がりました。そして大幅な最適化、使用メモリが削減されています。例えばWordPress4.4では、PHP5.6から7に上げると、リクエスト速度で倍近いベンチマークが記録されています。このように、PHP7で大きなユーザーメリットが得られたと紹介しました。
PHP7から7.1では、そこまで速度改善は行われておらず、機能面での改善が行われたと話しました。
PHP7.1の新機能概要
PHP7.1では複数の改善・変更ポイントがあり、より便利に使いやすくなっています。廣川さんはその要点を紹介していきました。
複数例外型のキャッチでは、いままで異なる例外は1つずつキャッチし処理するしかありませんでした。PHP7.1からは、共通の処理で行えるようになり、よりシンプルに記述できます。
リスト構文では、いままで記述がlist
関数を使って代入していました。PHP7.1からは、配列、連想配列をlist
を使わずにいっきに代入できるようになり、シンプルに記述できます。
クラス定数のアクセサ指定では、従来クラス定数はすべてpublic
(アクセス制限機能)がありませんでした。PHP7.1からは、public
以外のprivate
などを使ってアクセス範囲を指定できます。
Nullable型では、型がついたメソッド引数ではNULL
を引数に渡すとエラーになっていました。PHP7.1からは、メソッド引数に?
を付けることでNULL
を渡せます。これにより、前もってNULLチェックをしなくてもよくなり、より便利に使えます。
機能改善以外に、PHPエクステンションであるmcrypt()
やmb_ereg_replace()
のeval
オプションがPHP7.1よりエラー(警告)がでるようになりました。PHP7.2以降では削除されるため、使用する場合は注意が必要になります。
他にもFacebookが開発・公開しているHHVM/HackもPHP7をサポートし、順調にPHP7の進化についていっていることを取り上げていました。
PHPのこれから・未来
PHP7.1がもうすぐリリースされますが、すでにPHP7.2の開発も始まっています。まだ開発項目は決まっていないということですが、PHP7.1で入らなかったPCO(PHP Cryptography Object)を入れることが考えられています。PCOは、いままで複数ライブラリあったハッシュ、暗号化使い方を一種類のインターフェースにまとめたものです。これにより、OpenSSLなどがサポートされる可能性があるそうです。
また先の話にはなりますが、Zendが開発コード(ネイティブコード)を公開していて、JITコンパイラを改善することでより早くなると予想されています。
PHPの未来については、枯れている言語なので機能は少しずつ変わり、性能はこれからも上がるだろうと言います。これまでも、PHP3から4のときでも劇的に上がり、PHP4から5のときでも劇的に上がり、もう上がる余地がないだろうと思っていたのにPHP5から7でも劇的に上がりました。廣川さんは「まわりのデータベース、いろいろなエンジン(Zend・HHVM)、フレームワークなど、これらを大事にしていくことで、これからも発展していく」と述べていました。
また、「PHPの良さは、言語が優れていることよりも、問題を現実的に解決してくれること。その証明がユーザー数の多さであり、このことがPHPを発展させていくと考えている」と話していました。
PHPの発展・ユーザー会
最後に、PHPの発展に寄与してきた日本PHPユーザー会を紹介しました。2000年4月に発足し、PHPユーザー相互の情報交換およびコミニティ発展を目的にしています。
廣川さんは「PHPユーザー会に参加し、カンファレンススタッフとして参加することで、さらにコミニティが広がり楽しいことがある」と述べていました。
そして、「本日のPHPカンファレンスを楽しんでいってほしい」とセッションを締めくくりました。