@@ -31,7 +31,7 @@ class DOMNode
31
31
{
32
32
/**
33
33
* @readonly
34
- * @var DOMNamedNodeMap<DOMAttr>|null
34
+ * @var DOMNamedNodeMap<DOMAttr<string> >|null
35
35
*/
36
36
public $attributes;
37
37
@@ -45,6 +45,13 @@ class DOMElement extends DOMNode
45
45
/** @var DOMDocument */
46
46
public $ownerDocument;
47
47
48
+ /**
49
+ * @readonly
50
+ * @inherited
51
+ * @var DOMNamedNodeMap<DOMAttr<string>>|null
52
+ */
53
+ public $attributes;
54
+
48
55
/**
49
56
* @param string $name
50
57
* @return DOMNodeList<DOMElement>
@@ -59,12 +66,22 @@ class DOMElement extends DOMNode
59
66
public function getElementsByTagNameNS ($namespaceURI, $localName) {}
60
67
61
68
/**
62
- * @phpstan-assert-if-true DOMNameSpaceNode|DOMAttr $this->hasAttribute($qualifiedName)
63
- * @phpstan-assert-if-true DOMNamedNodeMap<DOMAttr> $this->attributes
69
+ * @template T of string
70
+ * @param T $qualifiedName
71
+ * @return bool
72
+ * @phpstan-assert-if-true (T is 'xml:id' ? DOMNameSpaceNode : DOMAttr<T>) $this->hasAttribute($qualifiedName)
73
+ * @phpstan-assert-if-true DOMNameSpaceNode<DOMAttr<T>|DOMAttr<string>> $this->$attributes
64
74
*/
65
75
public function hasAttribute(string $qualifiedName): bool
66
76
67
- public function getAttributeNode(string $qualifiedName): DOMAttr|DOMNameSpaceNode|false
77
+ public function hasAttributeNS(?string $namespace, string $localName): bool
78
+
79
+ /**
80
+ * @template T of string
81
+ * @param T $qualifiedName
82
+ * @return (T is 'xml:id' ? DOMNameSpaceNode|false : DOMAttr|false)
83
+ */
84
+ public function getAttributeNode(string $qualifiedName): DOMAttr<T>|DOMNameSpaceNode|false
68
85
}
69
86
70
87
/**
@@ -96,11 +113,20 @@ class DOMXPath
96
113
97
114
}
98
115
116
+ /**
117
+ * @template Name as string
118
+ */
99
119
class DOMAttr extends DOMNode
100
120
{
101
121
/** @var DOMDocument */
102
122
public $ownerDocument;
103
123
124
+ /**
125
+ * @var Name
126
+ * @readonly
127
+ */
128
+ public $name;
129
+
104
130
}
105
131
106
132
class DOMCharacterData extends DOMNode
0 commit comments