-
-
Notifications
You must be signed in to change notification settings - Fork 319
Closed
Description
概要
src/Document.php の Line 150 で new DOMNodeList() を直接インスタンス化していますが、PHP公式ドキュメントでは DOMNodeList はユーザーコードから直接インスタンス化できないとされています。
現状
- 動作確認済み: PHP 7.4、8.0、8.4 で
new DOMNodeList()はエラーなく動作 - テスト: 全82テストが成功
- 問題: PHP公式では未サポートの方法のため、将来のバージョンで互換性リスクあり
対応案
以下のいずれかの方法で、文書化された方法で空の DOMNodeList を取得する:
getElementsByTagName('__never_match__')を使用- XPath で
//*[false()]のような必ず0件を返す式を評価 createDocumentFragment()->childNodesを使用
関連
- PR Undefined Index: Path #3: PHPStan Static Analysis (Level Max + Strict Rules)
- PR URL: Add PHPStan Static Analysis (Level Max + Strict Rules) uzulla/PHpEmbed-Embed#3
- Discussion: Add PHPStan Static Analysis (Level Max + Strict Rules) uzulla/PHpEmbed-Embed#3 (comment)
- 報告者: @uzulla
備考
PHPStan導入が主目的のPR #3では対応を見送り、将来の改善タスクとして記録。
Metadata
Metadata
Assignees
Labels
No labels