为Drupal11.3升级PHP到8.5

一、PHP 8.5 の主要な改善点(8.4 との比較)
PHP 8.5 は 2025 年 11 月 20 日に正式リリースされました。8.4 をベースに、現代的なプログラミング構文をさらに洗練させ、標準ライブラリのセキュリティを向上させています。
画期的な構文機能
パイプ演算子 (Pipe Operator |> ):
これは 8.5 で最も期待された機能です。関数呼び出しをチェーン状に組み合わせることができ、コードの可読性が大幅に向上します。
例: $data |> 'json_decode' |> 'process_data' |> 'render_view'; これにより、ネストされた関数呼び出しを置き換えます。
clone with 構文:
オブジェクトをクローンすると同時にプロパティを変更できます。これは readonly プロパティを使用した不変オブジェクト (Immutable Objects) にとって非常に便利です。
静的プロパティの非対称アクセス制御:
8.4 のインスタンスプロパティ機能を継承し、静的プロパティでも public get と private set を個別に定義できるようになりました。
標準ライブラリと機能強化
組み込み URI 拡張: RFC 3986 標準に準拠した URI 処理拡張が新たに追加され、複雑な URL を処理する際の parse_url() のセキュリティリスクを根本的に解決しました。
array_first() / array_last(): 配列の先頭と末尾の要素をネイティブで取得できるようになり、内部ポインタを操作する必要がなくなりました。
永続的 cURL 接続: HTTP リクエストのパフォーマンスが最適化され、複数の PHP リクエスト間で接続ハンドルを共有できるようになりました。
#[NoDiscard] 属性: コンパイラが開発者に対し、特定の重要な関数の戻り値を無視しないよう警告できるようになりました。
二、Drupal 11 における PHP 8.5 のサポート状況
正式サポートノード
Drupal 11.3: PHP 8.5 との互換性を正式に宣言した最初のバージョンです。
コア依存関係: Symfony 7.2+ のリリースに伴い、Drupal コアおよびその基盤となるデカップリングライブラリが PHP 8.5 への完全な適応を完了しました。
互換性の概要
安定動作: テストの結果、Drupal コアは PHP 8.5 上で安定して動作することが確認されています。8.5 は大規模な破壊的変更(非推奨化)を導入していないため、8.4 用に作成されたほとんどのモジュールはそのまま動作します。
開発に関するアドバイス:
モジュール開発: 開発者はカスタムモジュールで PHP 8.5 の新機能(パイプ演算子など)を利用できるようになりましたが、下位バージョンの Drupal 11 との互換性が必要な場合は、慎重に使用する必要があります。
CI/CD: Drupal の自動テスト環境には、デフォルトで PHP 8.5 コンテナが含まれるようになりました。
将来の展望 (Drupal 12)
コミュニティは 2026 年末に Drupal 12 をリリースする計画であり、その際 PHP 8.5 が最低必須バージョンとなる予定です。これは Drupal 10 が PHP 8.1 を必須とした戦略と同様です。