【PHP8.1リリース記念】PHPerのためのPHP8.1をもっと語り合うPHP TechCafe

PHPers News

The New Life of PHP – The PHP Foundation
・もっとPHPの言語内でパラダイム・シフトが活発になりそう
・レガシーシステムを作っている会社はDOKIDOKI★HETOHETOが待っていそう★★

2021 アドベントカレンダー Laravel
著名なエンジニアによる記事が満載。Laravel の最新情報などもそろっている雰囲気です

JetBrainsがコードエディタの「Fleet」を発表
PHPは実装予定。単純に使ってみたいです。

Appleシリコン対応Docker Desktop、一般提供を開始
M1 Mac不具合が解決していけば最新Mac買いたい。
まだIntel Macの信用度は高い。

Nikita Popov、PHP開発から離れる & PHP財団設立のお知らせ
PHP開発の主要人物って2人だけなんだぁ……

PHP: PHP 8.1.0 Release Announcement
新機能については、うちのTechBlogでもまとめられています

PHPerKaigi petit - PHP8.1リリース祝賀会
参加者のアイコンが見たことあるアイコンばかり…

「動的プロパティの禁止」が僅差で可決
ライブラリやら諸々取り込むのは大変そう
ちなみに投票数の2/3が賛成で可決です

特集:PHP8.1をもっと語り合う

PHP8.1リリース前のPHP TechCafe

メイン機能

  • Readonly Properties

    • 使いやすそう
    • この値は変更してほしくないという意図をのちの開発者に伝えられる
    • ただし、型つきプロパティのみに対応
  • New never type

    • 可読性向上が期待できる(レガシーなコードにバンバンつけていきたい)
    • 加納はやっぱり"noreturn"のほうがよかったのでは派
  • Final class constants

    • 継承したclassの定数をオーバーライドすることを禁止することが出来る
    • 意図しない変更を防止することができる

非推奨になる機能

  • date_sunrise() and date_sunset()

    • 日の出、日の入の時刻を返す関数。
    • そんな関数があったのかという意味で気になった。
    • 他にも面白い関数がありそう(PHP8.1の話題とはそれるが)
  • key(), current(), next(), prev(), reset() on objects

    • そもそもobjectをforeachしたことがなかったので気になった。
    • object内の、アクセス権限があるプロパティにのみforeachでアクセスできる模様。
    • 今後はobjectを配列にキャストするか、get_mangled_object_vars()を使用することになる。
    • https://www.php.net/manual/ja/language.oop5.iterations.php
  • get_class(), get_parent_class() and get_called_class() without argument

    • 却下されたRFC。
    • 影響が大きいため却下された?
    • 今回は却下されたが、将来非推奨になりそうな気はする。
  • t fopen mode

    • 却下されたRFC。
    • 影響が大きいため却下された?
    • 今回は却下されたが、将来非推奨になりそうな気はする。
  • filter.default ini setting

    • $_GET, $_POST, $_COOKIE, $_REQUEST および $_SERVER のすべてのデータをフィルタリングできる。
    • フィルタもいくつかあって、なんか色々できそう。
    • が、デフォルトの設定(unsafe_raw)以外は非推奨になる模様。
    • https://www.php.net/manual/ja/filter.filters.sanitize.php
  • 暗黙の float から int への変換

    • 型を意識債PHPを感じる
  • false な変数を自動的に復活させる挙動(Autovivification)

    • なんだかんだやってしまっていること多くない??

下位互換性のない変更点

  • 継承したメソッド内で static 変数を使う
  • 内部クラスと戻り値の型の互換性
  • リソースからオブジェクトへの移行

ここら辺はシステムによっては影響が結構ありそう。
申込時にさっそくapacheにphp8.1インストールしたら500でまくりでしたというメッセージもいただいておりました。

その他の話題

Select a repo