公式発表によると、PHP 8.4は2024年11月21日にリリースされる予定です。これは3つのアルファバージョン、3つのベータバージョン、および6つのリリース候補を通じてテストされます。
この大規模なアップデートは、PHPに一連の最適化と強力な機能をもたらします。私たちは、より良いコードを書き、より強力なアプリケーションを構築できるようにする最も興味深いアップデートと変更点を紹介することに興奮しています。
準備はできましたか?それでは、探索してみましょう!
PHP 8.4の新機能
1. DOM拡張機能がHTML5をサポート
PHP 8.4のDOM拡張機能は、HTML5の解析とシリアライゼーションをサポートすることで大幅にアップグレードされました。これにより、HTML5特有のタグやJavaScriptに埋め込まれたHTMLの扱いに頭を悩ませることはなくなります。新しいDOM\HTMLDocumentクラスを使用するだけで、HTML5コンテンツが正しく処理され、現代のWeb標準に準拠します。
文字列からHTMLドキュメントを作成する方法はこちらです:
use DOM\HTMLDocument;
$htmlDocument = HTMLDocument::createFromString('<!DOCTYPE html><html><body>Hello, HTML5!</body></html>');
ファイルからの場合:
use DOM\HTMLDocument;
$htmlDocument = HTMLDocument::createFromFile('path/to/your/file.html');
詳細はこちら: PHP RFC: DOM HTML5 Parsing and Serialization
2. デフォルトのbcryptコストの増加
PHP 8.4では、bcryptのデフォルト暗号化コストが12に増加しました。これは何を意味するのでしょうか?
BcryptはPHPで使用されるパスワードハッシュ関数で、ハッカーがパスワードを解読するのを防ぐための盾として機能します。この盾の強さは調整可能で、設定や「コスト」が高いほど、bcryptは適応関数として強力になります。
「時間が経つにつれて、反復回数を増やすことで速度を遅くし、計算能力が増加してもブルートフォース攻撃に対して耐性を持ち続けることができます。」
なぜこれが重要なのでしょうか?bcryptの暗号化コストを増やすことで、パスワードハッシュの処理が数ミリ秒遅くなるからです。
詳細はこちら: PHP RFC: Increase Default BCrypt Encryption Cost
3. 大規模なXMLドキュメントの解析の信頼性向上
この変更は、ext/xml PHP拡張機能に関連する大規模なXMLドキュメントの解析問題に対処します。
libxml2バージョン2.7.0の変更により、xml_parse()
およびxml_parse_into_struct()
関数を使用した場合、大規模なドキュメントの解析が意図せずに壊れてしまい、解析エラーが発生しました。
PHP 8.4では、大規模なXMLドキュメントを正しく処理し、解析エラーを防ぐ新しいパーサーオプションが導入され、複雑な回避策を必要とせずに大規模なXMLドキュメントを効率的に解析できるようになります。
詳細はこちら: PHP RFC: XML_OPTION_PARSE_HUGE
4. 新しいマルチバイトトリミング関数
PHP 8.4のmbstring拡張機能には、mb_trim()
、mb_ltrim()
、およびmb_rtrim()
の3つの新しい関数が追加されました。この追加により、マルチバイト文字を含む文字列のトリミングが容易になり、以前のpreg_replace()を使用した正規表現の使用が改善されました。
新しい関数は、マルチバイトセーフな方法でスペースやその他の文字を処理します。デフォルトの動作は、さまざまなタイプの空白文字を含む事前定義された文字セットを削除しますが、すべてのUnicode文字をカバーするわけではありません。
PHP 8.4の関数とそのデフォルトの動作は次のとおりです:
-
mb_trim($string, $characters)
: 文字列の両端から指定された文字をトリミングします。 -
mb_ltrim($string, $characters)
: 文字列の先頭(左側)から指定された文字をトリミングします。 -
mb_rtrim($string, $characters)
: 文字列の末尾(右側)から指定された文字をトリミングします。
デフォルトでは、$characters
にはさまざまな空白文字が含まれますが、ストレージと互換性の問題からすべてのUnicode文字は含まれていません。
詳細はこちら: PHP RFC: Multibyte Trimming Functions mb_trim, mb_ltrim, and mb_rtrim
5. IMAPモジュールがPECLに移動
PHP 8.4では、IMAPモジュールがconfigureにコンパイルされなくなり、PECLに移動しました。IMAPモジュールが必要な開発者は、別途コンパイルする必要があります。
MacOSにPHP 8.4をインストールする方法
現時点では、PHP 8.4はまだリリースされていませんが、ServBayはすでに最新のPHP 8.4 Devバージョン(IMAPモジュールを含む)を統合しています。開発者は公式ウェブサイトhttps://www.servbay.com から直接ダウンロードしてインストールでき、わずか3分でPHP開発環境 を簡単に設定できます。
(ServBayはPHP 5.6から最新のPHP 8.4 Devまで、さまざまなPHPバージョンを提供しており、開発者は常に希望する開発環境を使用できます)
結論
PHP 8.4は、開発者がよりきれいで、迅速で、表現力豊かなコードを書くことを可能にする、数多くのエキサイティングな新機能と改善をもたらします。ただし、PHP 8.4へのアップグレードは慎重に行う必要があります。後方互換性の変更を考慮し、コードを徹底的にテストしてスムーズな移行を確保してください。ServBayを使用することで、開発環境に影響を与えることなくPHP 8.4の新機能を探索し、アップグレードプロセスを慎重に計画することができます。PHP 8.4の可能性を最大限に引き出し、開発スキルを新たな高みに引き上げましょう。