PHP 8.4

最終更新:

当サイトはアフィリエイト広告を利用しています。

PHP 8.4 は 2024年11月21日にリリースされた最新の安定バージョンです。Active Support(バグ修正・セキュリティパッチ)は 2026年12月31日まで、Security Support(セキュリティパッチのみ)は 2028年12月31日まで提供されます。プロパティフック(Property Hooks)・非対称可視性(Asymmetric Visibility)など、PHP の表現力を高める機能が多数追加されました。本記事では PHP 8.4 のサポートスケジュールと PHP 8.3 からの移行を解説します。

PHP 8.4 のサポート期限一覧

サポート種別 開始日 終了日 現在のステータス
Active Support(バグ修正・セキュリティパッチ) 2024-11-21 2026-12-31 サポート中
Security Support(セキュリティパッチのみ) 2027-01-01 2028-12-31 将来

PHP のサポートポリシー
PHP の各メジャー・マイナーバージョンは、リリースから 2年間の Active Support(バグ修正とセキュリティパッチ)と 追加1年間の Security Support(重大なセキュリティ修正のみ)の合計3年間サポートされます。PHP 8.4 は 2024年11月リリースのため、Security Support が 2028年12月31日まで延びます。

各 PHP 8.x バージョンのサポート状況

バージョン Active Support 終了 Security Support 終了(EOL) ステータス
PHP 8.1 2023-11-25 2025-12-31 EOL済み
PHP 8.2 2024-12-08 2026-12-31 Security Support中
PHP 8.3 2025-12-31 2027-12-31 Security Support中
PHP 8.4 2026-12-31 2028-12-31 Active Support中(最新)

基本情報

  • リリース日: 2024年11月21日
  • 最新バージョン: 8.4.21
  • Active Support 終了: 2026年12月31日
  • Security Support 終了(EOL): 2028年12月31日
  • 後継製品: PHP 8.5(2025年11月リリース予定)
  • 主な新機能: プロパティフック(Property Hooks)・非対称可視性(Asymmetric Visibility)・ラジー オブジェクト(Lazy Objects)・新しい配列関数群(array_find 等)・HTMLエスケープのデフォルト変更

PHP 8.4 の主要な新機能

プロパティフック(Property Hooks)

PHP 8.4 の最大の新機能は プロパティフックです。クラスのプロパティに get/set のカスタムロジックを直接記述でき、従来のゲッター/セッターメソッドを大幅に簡略化できます。

class User {
    public string $name {
        set(string $value) {
            if (strlen($value) < 2) {
                throw new ValueError('名前は2文字以上で入力してください');
            }
            $this->name = $value;
        }
    }
}

非対称可視性(Asymmetric Visibility)

プロパティの読み取りと書き込みに対して異なるアクセス修飾子を設定できるようになりました。public private(set) と宣言することで、外部からは読み取り可能だが書き込みはクラス内のみ許可するパターンをシンプルに表現できます。

class Order {
    public private(set) int $status = 0;

    public function approve(): void {
        $this->status = 1; // クラス内からは書き込み可
    }
}

$order = new Order();
echo $order->status; // 外部からは読み取り可
// $order->status = 1; // Fatal error: Cannot modify private(set) property

PHP 8.2/8.3 からの移行の必要性

PHP 8.2 は Active Support が終了し Security Support フェーズに移行しています。PHP 8.3 は 2025年12月31日に Active Support が終了しました。現在 PHP 8.2 または 8.3 を使用している環境では、PHP 8.4 への移行を検討することを推奨します。

1. セキュリティパッチの縮小

Security Support フェーズでは重大なセキュリティ修正のみが提供されます。通常のバグ修正は行われないため、PHP コアや標準ライブラリのバグが修正されない状態が続きます。

2. レンタルサーバー・共有ホスティングの強制アップグレード

さくらのレンタルサーバー・エックスサーバー・ConoHa WING などの共有ホスティングサービスは、PHP の EOL に合わせてサポートバージョンを削除・強制更新する場合があります。使用中の PHP バージョンがプロバイダーの更新スケジュールに含まれていないか確認してください。

3. CMS・フレームワークの対応要件

WordPress・Laravel・Symfony・CakePHP などは PHP 8.4 対応を進めており、新バージョンでは PHP 8.4 以上が推奨または必須になっていきます。古い PHP バージョンを使い続けると、CMS やフレームワークのアップデートが適用できなくなります。

PHP 8.3 → 8.4 移行時の注意点

非推奨(Deprecated)機能の確認
PHP 8.4 では一部の関数・機能が非推奨になりました。特に E_STRICT エラーの扱いや一部の文字列関数の挙動変更が含まれます。移行前に error_reporting(E_ALL) を有効にしてテスト環境で動作確認を行い、非推奨警告を解消してください。

HTML エスケープの変更
htmlspecialchars() および htmlentities() のデフォルト文字コードが UTF-8 に変更されました(PHP 8.1 以前のデフォルトは ISO-8859-1)。既にコードで明示的に UTF-8 を指定している場合は影響ありません。

Composer での依存解決
composer update 実行時に PHP バージョンを確認した依存解決が行われます。一部のパッケージが PHP 8.4 未対応の場合は警告が表示されます。事前に composer check-platform-reqs で確認することを推奨します。

PHP アプリケーションのホスティング環境

PHP アプリケーションを VPS 上でセルフホストしている場合、PHP バージョンの管理・php-fpm の設定・セキュリティパッチ適用はすべて手動となります。ondrej/php PPA(Ubuntu)や remi リポジトリ(RHEL 系)を使用すると、複数の PHP バージョンを共存させながら段階的な移行が可能です。

広告

公式情報