Webアプリのバックエンドの言語としてよく用いられるPHPですが、間もなくメジャーバージョンアップされたPHP 8.0がリリースされる予定となっており、続々と搭載予定の新機能が明らかになっていっています。
PHP 8.0の新機能の一覧を見てみると非常に画期的な機能の追加や変更が数多く採用されているようです。
この中でも、特に個人的に気になったのが、アトリビュートのPHPシンタックス化です。
<<>>
でメタデータを埋め込むことができるようになります。
<<WithoutArgument>>
<<SingleArgument(0)>>
<<FewArguments('Hello', 'World')>>
function foo() {}
これまではPHPDocやPSR-5のようにコメントで書くしかなく、強制力もありませんでした。
アトリビュートは、PHPの構文として実効力のある方法でメタデータを書けるようになります。
https://qiita.com/rana_kualu/items/fe7998fbe773544d5d25#attributes-v2
アトリビュートは、基本的にプログラムされた機能本体へ影響を及ぼすものではなく、コード内の関数の内容の説明や型指定などの情報を記述することで、同プロジェクトの開発に携わる開発者に対する支援機能を提供するために使用されます。
また、テスト時のテストの動作を定義するものもあり、テスト駆動開発を行う際は欠かせない要素でもあります。
いままではコメント上に ‘@’からはじまる各キーを記述することで表現していましたが、PHP上からは飽くまでコメントとしてしか認識されませんでした。
これからはPHPコードの一部として正式に認識させることができるようになり、コーディング規約の厳守を開発者に求めるなどどいった使い方がよりしやすくなりやすそうです。
ほかにも、従来バージョンのPHPでは許されてしまっていた曖昧かつ’抜け穴’的なシンタックスの禁止や細かな動作の改善、そしてJITコンパイルを導入した動作の高速化など、非常に多くの点で改良が加えられています。
シンタックスにかかわる部分の修正も多くあるため、既存のコードをPHP8に載せ替えるには十分な検証が必要となりそうですが、より便利で効率的に高度なWebアプリの開発がPHP上で構築していけるようになりそうで、非常に楽しみですね。
2020年12月ごろに正式版がリリース予定ということなので、リリースまでの動向も是非チェックしていきたいですね。