5 ポイント 投稿者 GN⁺ 2024-11-22 | 3件のコメント | WhatsAppで共有
  • プロパティフック、非対称可視性、更新された DOM API、パフォーマンス向上、バグ修正、および全般的な整理を含む
    • IDE と静的解析ツールがネイティブに理解できる計算プロパティをサポートするプロパティフックを提供
    • プロパティの読み取りと書き込みのスコープを独立して制御できる非対称可視性を導入。
  • 新機能
    • #[\Deprecated] 属性により、ユーザー定義関数、メソッド、クラス定数に PHP の既存の非推奨メカニズムを適用可能。
    • 新しい DOM API は、HTML5 ドキュメントの解析における標準準拠サポートを含み、DOM 機能の複数の古い互換性バグを修正。
    • BcMath\Number オブジェクトを使用して、任意精度の数値をオブジェクト指向で処理可能。
    • array_find(), array_find_key(), array_any(), array_all() などの新しい配列関数を提供。
    • PDO の新しいサブクラス Pdo\Dblib, Pdo\Firebird, Pdo\MySql, Pdo\Odbc, Pdo\Pgsql, Pdo\Sqlite を提供。
    • 新しくインスタンス化されたオブジェクトのプロパティとメソッドに括弧なしでアクセス可能。
  • 新しいクラス、インターフェース、および関数
    • 新しい Lazy Objects、IR Framework ベースの JIT 実装。
    • request_parse_body() 関数、bcceil(), bcdivmod(), bcfloor(), bcround() 関数を追加。
    • DateTime::createFromTimestamp(), DateTime::getMicrosecond(), DateTime::setMicrosecond() などのメソッドを追加。
    • mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst() 関数を追加。
    • pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid() 関数を追加。
    • ReflectionClassConstant::isDeprecated(), ReflectionGenerator::isClosed(), ReflectionProperty::isDynamic() メソッドを追加。
    • http_get_last_response_headers(), http_clear_last_response_headers(), fpow() 関数を追加。
    • XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(), XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory() メソッドを追加。
    • grapheme_str_split() 関数を追加。
  • 非推奨と互換性の破壊的変更
    • IMAP、OCI8、PDO_OCI、pspell 拡張機能がバンドルから削除され、PECL に移行。
    • 暗黙的に nullable なパラメータ型が非推奨に。
    • クラス名としての _ の使用が非推奨に。
    • 0 を負のべき乗にすることが非推奨に。
    • 無効なモードを round() に渡すと ValueError が発生。
    • 拡張機能のクラス定数が型付きに。
    • GMP クラスが final に指定。
    • MYSQLI 関連の定数と関数が非推奨に。
    • stream_bucket_make_writeable()stream_bucket_new()StreamBucket インスタンスを返すように変更。
    • exit() の動作を変更。
    • E_STRICT 定数が非推奨に。
  • パフォーマンスおよび構文の改善
    • パフォーマンス向上、構文改善、型安全性向上。
    • PHP 8.4 へのアップグレードを推奨。

3件のコメント

 
carnoxen 2024-11-23

WordPress と Laravel のおかげで、少なくとも飢え死にはしない言語

 
budaestew 2024-11-23

WordPressやLaravelが衰退しても、食いっぱぐれない言語です。

 
GN⁺ 2024-11-22
Hacker Newsのコメント
  • $this->countryCode が無限再帰を引き起こさない理由は RFC に明記されている。PHP のプロパティアクセスが文脈によって異なる意味を持ちうる点は、魔法のように感じられる。

    • プロパティアクセスがメソッド呼び出しに変換されるという言語の魔法がある。
    • PHP ユーザーではないが、このような複雑さが言語に追加されることは懸念している。
  • PHP プログラマーとして、PHP の方向性が心配だ。新しい言語機能が、疑わしい利益のために言語の複雑さを高めている。

    • プロパティフックは、プロパティアクセスがメソッド呼び出しに変換されることを意味する。
    • JS や Perl でこれに似た機能を使ったことはあるが、明示的なメソッドのほうがより明確で拡張しやすい。
  • PHP が今なお繁栄していることをうれしく思う。2021 年には Nikita Popov の離脱で心配したが、PHP は今でも良い言語で、多くの開発者が活発に活動している。

  • プロパティフックに最も期待している。C# で恋しかった機能だ。

    • __get()__set() を使って似たことをしていたが、これは重く、多くの PHPDoc コメントが必要だった。
  • 配列アクセサのオーバーロードを見ていて "Property Hooks" を見つけた。最近追加された機能だと知って驚いた。

    • 他の言語の表現力やシンタクティックシュガーが PHP に導入されたことをうれしく思う。
  • PHP の新しいリリースに満足している。クロージャのより良いスタックトレース、性能改善、HTML5 サポート、レイジーオブジェクトなど、多くの改善が行われている。

  • bcmath オブジェクトに期待している。算術演算子そのものよりも、ラッパークラスなしでデータ型チェックができるようになった点がよい。

  • PHP が今なお進化していることをうれしく思う。フリーランスとして始めた頃の記憶がよみがえる。

  • PHP の新しい array_find 関数は、言語設計の問題を示している。既存の array_search と似ているが、引数の順序が異なる。

    • 他の言語にこのような関数があるという理由で PHP にも追加されたが、ほとんどの言語はそれをグローバル関数にはしていない。
  • "public private(set)" が理解できない。"readonly public" のほうが適切に見える。

    • Swift の private(set) に似ているようだ.