成長できたと毎日思い続けられるように

SierからWeb業界に転身したWebエンジニアのブログ

phpconf2017に参加してきました 〜セッション:PHPの今とこれから2017編〜

こんにちは。Webエンジニアの石本です。
先週末(10/8)に開催されたPHPconf2017の当日スタッフをやってきました。

 

phpcon.php.gr.jp

 

スタッフあるあるですが、スタッフをやっているとセッションが全く聞けなかったりするんですよね。
そこで、アーカイブ動画がぼちぼち公開されているようなのでそれを見た時のまとめを簡単に書いていこうと思います。

 

youtu.be

 

PHPの今とこれから2017

廣川 類(日本PHPユーザ会)のセッションです。


PHPとは?

サーバーサイド言語の中でPHPを始めとするスクリプト言語が約8割を占め、CMSのシェアでもPHP系のものが多く利用されていると話していました。

 

PHPバージョン分布

PHP5.3〜5.5は、5〜7%減少傾向にあるのに対して、5.6は12%、7.xは6%増とバージョンアップの流れがあり、主要なフレームワークWordPressやLaravelなどの推奨環境でPHP7などを採用していることがバージョンアップへの動きを促している。しかし、まだまだ動きとしては小さいと話していました。

 

PHPリリースサイクル

PHPのリリースサイクルとして約1年おきに、新しいバージョンがリリースされます。
リリース後のライフサイクルとして3年間、バグ修正に2年、セキュリティ修正に1年を経過したのちに、サポートが終了する事になります。今回,PHP5.6のサポートが延長(バグ修正:+4ヶ月、セキュリティ修正:+1年)になりました。しかし、2018/12/31には完全にサポートが終了してしまうため、早めに7.xへの移行を進める必要があると話していました。

 

PHP7.2改善/変更のポイント

主な改善/変更ポイントは以下の通り。

  • 新しい引数型宣言/戻り値object
  • パスワードの保存と攻撃への対策
  • password_hash関数へのArgon2導入
  • Libsodium標準サポート化
  • 認証付き暗号(AEAD)
  • PHP7.2廃止予定
  • 名前によるエクステンションロード
パスワードの保存と攻撃への対策

パスワードのハッシュ値md5sha1で保存するのは不適切。GPUによる総当たり攻撃で高速に解かれてしまう時代になっている。
計算コストを適切に高めることで総当たり攻撃に対応する必要があり、パスワードハッシュ用API(PHP5.5から導入。password_hashやpassword_verifyなど)を利用すると常に最新の実装を簡単にできる。さらに、そのAPIにArgon2が導入された。

Libsodium標準サポート化

多くのプログラミング言語では、OpenSSLのみを提供しているがPHPでは簡単でかつ、標準設定で安全な高レベル暗号API「libsodium」を標準コア化しているようです。

PHP7.2廃止予定
廃止対象 代替
__autoload sql_autoload_register()
$php_errormsg error_get_last()1
または
error_clear_last()
create_function() クロージャ(PHP>=5.3)
mbstring_func_overload -
parse_str()
※第二引数なしのもの
parse_str("a=foo&b[]=foo+bar", $output);
each() foreach
名前によるエクステンションロード

Linuxのextension=mbstring.soやWindowsのextension=php_mbstring.dllは、extension=mbstringとなる。

PHPフレームワーク2017

2011年にSymfony2ベースで作成され、ユーザ認証をサポート、柔軟・スケーラブル・簡単な面が支持され、Laravelの人気が圧倒的に高いと話していました。

HHVM/Hackの進化

PHP5.xの欠点を補完する為に、作成されたものであったが、PHP7の登場で5.xの欠点を補完してきた。そこで、HHVMの将来のロードマップが公開され、PHP7完全互換は目指さない。HHVM版Composerの提供やHack用ツール/ライブラリの提供する。
Hack言語に関しては、デストラクタ及びリファレンスの廃止を行なっていくようです。

感想

PHP全体の話が中心のセッションですね。PHP7.0〜大幅に改善されてより使いやすい言語に成長しているように感じますね。また、5.xの欠点を補う為にFacebookが開発したHHVM/HackとPHP7.xがお互い歩み寄りつつも、それぞれの個性を発揮して磨きあってより素晴らしい言語へと成長して欲しいですね。