Knowledge for WordPress

Knowledge for Google Products

2021年10月3日日曜日

PHP Conference Japan 2021 に参加して #phpcon2021

PHP Conference はいつも都合がつかず、WordCamp Tokyo 2013 と合同開催された PHP Conference 2013 に参加して以降、長らく参加できていませんでした。

その間、 2015年に PHP7が、2020年に PHP8が新たにリリースされ、WordPress が動作するサーバ環境のメンテナンスやプラグイン開発をしている筆者にとっては、非常に関心の高いイベントとなっています。

PHP8.0 の環境で開発しつつ、サーバーでは PHP7.4 がメインの現状、PHP 8.1 が2021年にリリースされる話もあり、このあたりで情報収集しておかねばとおもったのでした。

他の作業をしながらの視聴のため、あまり多くは視聴できませんでしたが、興味の引いたいくつかの内容について紹介しておきます。それぞれ発表された内容を、筆者なりに理解した言葉に置き換えてます。


PHPの今とこれから2021


タイムテーブル:https://fortee.jp/phpcon-2021/timetable

今年中にPHP8.1 が出ることもあり、その新機能について説明があった。上記のように、1つずつ丁寧に例を示しながらの発表はとてもありがたい。


可変長引数 ...$a など ドットを3つつなげる


PHP5.6から実装されていて、PHP8.1 では連想配列でも使えるようになるとか。
下位互換性を重視していたこともあり、新機能はほとんど使わないようにしていたからか、このような機能があること自体知りませんでした。

function bbb(...$a){
  return $a;
}

$result = bbb('A', 'B', 'C');

などのように、引数の数が不明な場合に使えたのですね。
PHP5.4 と PHP7 との互換性を考えていましたが、もうPHP 5.x 系は捨てても良いでしょうから、今後は積極的に取り入れることができそう!

never

function aaa(int bbb): never{
  echo 'Error!';
  exit();
}

のように C言語でいう void のような使い方(呼び出し元に返らない)ができる型が実装されるとか。これは PHP8.1 からの機能なので、私にとってはまだ使えないですが、そういったものがあるということを知ることができるのは貴重です。

その他、新機能は盛りだくさんのようです。

【PHP8.1】 PPH8.1の新機能(Qiita)

も合わせて参照するとわかりやすいかもしれません。

レガシーシステムにおけるPHP8バージョンアップのアプリ対応記録

タイムテーブル:https://fortee.jp/phpcon-2021/timetable

比較演算子

  • 厳密な比較 ===
  • 緩やかな比較 ==

文字列と数値を比較した場合、文字列側が数値形式でない場合には、数字側が文字列に変換されるように変換される。

0 == "foo" について、 PHP 7.x だと真だが、PHP8.x では偽になる。
つまり、より正しくチェックできるようになったということ。

警告レベル

配列関数の引数に、配列以外の型を指定するとERRORに、など。

サービス運用エンジニアによるPHP8バージョンアップ奮闘記



grep だけでは発見出来ない不具合があり、挙動をみながら確認する必要があった。
PHP8 では、 OPcache + JITが速い(参考:PHP8のJITを有効にして、PHP7と速度比較する
リリース後のパフォーマンス計測、30%〜40%改善(PHP7.2→8.x)
バージョンアップを怠ると手間が増える(PHP7.4 に関するエラーが結構面倒だった)

2021年10月3日 @kimipooh

0 件のコメント: