PHPカンファレンス2017 レポート

廣川類さん、PHPの今とこれから2017 PHPカンファレンス2017 ゲストスピーカーセッション

10月8日、東京・大田区産業プラザPiOにて、PHPカンファレンス2017が開催されました。本稿では、ゲストスピーカーセッションである廣川類さんの講演をレポートします。

PHPユーザー会の廣川類さんは「PHPの今とこれから2017」というタイトルで、PHP7.2の紹介を中心に話しました。廣川さんはWebのプログラマではなく、1996年から趣味でPHPのプログラミングを行っているそうです。

画像

PHPとは

PHPは、Webアプリケーションを構築するために使われるスクリプト言語の一つです。かんたんかつ現実的な実装をするというポリシーで作られています。最近では、すこし複雑にも書けるようになりました。

廣川さんはW3Techs.comのグラフを取り上げ、Webの世界では圧倒的なシェアをほこる言語だと紹介しました。

画像

現在使われているPHPのバージョン

はじめに毎年恒例となっている、主に使っているPHPのバージョンについて会場アンケートを取りました。会場ではバージョン7の方が大多数を占め、他は5.6が2割程度という感じでした。廣川さん曰く、⁠世界的に見ると今年一年で5.4以前のバージョンの人が5.5にバージョンアップし、63%の方が5.5を使用している状況だ。トレンドとしては5.6が増加傾向にある」とのことです。

また、CMSとして圧倒的なWordPressや、LaravelなどのフレームワークもPHP7に対応していると言及し、⁠7を使用する人が増えていってほしい」と述べていました。

PHPのリリースサイクル

開発リソースには制限があるため、PHPの開発ではライフサイクルが定義されています。リリースサイクルは1年、ライフサイクルは3年です。

このサイクルを当てはめた場合、5.6のサポートは本来今年終わる予定でしたが、現状の利用者を鑑みて2018年末までサポートが延長されると紹介しました。会場内では頷く人や隣と話す人がちらほらいました。

PHPの歩みについても取り上げ、11月30日にはPHP7.2がリリースされることを言及しました。7.0の時ほどの華々しさはないですが、後述の暗号化周りが見どころとのことです。また、今年はCVE対応のリリースが4回ありましたが、大きなセキュリテイ問題は発生していないことを指摘しました。

画像

PHP7.2における改善・変更点

PHP7.2は、7.1から10%ほど高速化しました。とはいえ、プログラミング言語としての高速化なので、単純に導入することでアプリケーションとして10%速く動作することではないと注意しました(データーベースやサーバーなど、他に考慮しなければいけないボトルネックがあるため⁠⁠。

「より速く、快適に」という改善を日々しているが、PHP7.2では10%程度の高速化にとどまるところからも、⁠言語としての成熟が成されているのでは?」と述べていました。

オブジェクト型のタイプヒンティング

PHP7.2では新しく、オブジェクト型という汎用型のタイプヒンティングができました。7で実装されたスカラ型のタイプヒンディングと合わせて便利になりました。

画像

パスワード保存と攻撃への対策

ハッシュの値をmd5やSHA-1で保存すると総当りに弱いため、この手の攻撃には計算コストを高めることで対応すると良いと言及しました。また、タイミング攻撃に対する対応としては、実装が容易ではないのでハッシュ用のAPIが用意されているほうが望ましいと話しました。

この2点の対応として、次の関数がが新たに実装されたとのことです。

  • ハッシュ生成:password_hash関数
  • パスワード検証:password_verify関数

password_hash関数で採用されたArgon2はPassword Hashing Competition 2015の勝者であり、BcryptScryptの代替になるそうです。より柔軟な設定として、メモリコストや時間コスト、並列度を調整できる仕様になっていると説明しました。

その他、Libsodiumを標準でサポートし、公開鍵・秘密鍵の暗号化システムを自分で構築できるようになりました。認証付き暗号(AEAD)ついては、まだ使いづらいし覚えづらいと述べていました。AEADの実装方法はスライドで示していましたが、たしかに使いづらそうだと感じました。

廃止予定の機能

次に、PHP7.2で廃止予定になるものを紹介しました。McryptはPECLへ移動するとのことです。ほかにも廃止予定の機能を紹介しましたが、詳しくは廣川氏のスライドを参照してください。廣川さん自身が実装したものも入っていて、⁠ようやくか」と述べていたのが見どころでした。

画像

名前によるエクステンションロード

OSによって違っていたエクステンションの指定方法ですが、名前で指定できるようになることを紹介しました。

画像

2017年のフレームワーク

PHPのフレームワークについては、Laeavel人気が顕著になり、他のフレームワークは横ばいか微増減ということを、グラフを用いて紹介しました。廣川さんは「2017年はLaeavelですね」と述べていました。

画像

HHVM/Hackの進化

Hack言語はFacebookが開発し、PHPをサポートする新しい言語です。その処理系であるHHVMの将来は、PHP7との完全互換は目指しません。主なPHPツール、例えばComposer等は提供、相互型変換を準備していたりする一方で、デストラクタやリファレンスの廃止を挙げており、PHPとはつかず離れずの関係性を持っていくという目算のようです。

PHPのこれから

PHPは来年も引き続き開発が進み、JIT(HHVMに入っているもの)の高速版が導入される予定です。現状でもLua用JITエンジンDynASM使用しているようですが、速度面ではあまり成果が上がっていないようです。

コミュニティへの招待

最後に、コミュニティについて話しました。廣川さんは「このカンファレンスには委員長がいますが、PHPユーザー会には会長がいません。ゆるい団体なので、まずは参加してみてください」と述べました。

また、今年のPHPカンファレンスのテーマは「Challenge(チャレンジ⁠⁠」ですが、廣川さんは23年ずっと失敗をし続けてきたこと、その経験の積み重ねが大事だったと振り返りました。そして「失敗から立ち上がるためには周りからの意見を聞くことが主な助けになる。例えばこのようなカンファレンスでも、セッションを話した人を捕まえて話すと、セッションでは語られなかった裏話等がいろいろと聞けるし、覚えられるし、楽しめる」と述べ、⁠この後もカンファレンスも楽しんでください」と締めくくりました。

おすすめ記事

記事・ニュース一覧