summaryrefslogtreecommitdiff
path: root/vendor/fivefilters/readability.php/src/Nodes/DOM
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/fivefilters/readability.php/src/Nodes/DOM')
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMAttr.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCdataSection.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCharacterData.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMComment.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocument.php30
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentFragment.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentType.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMElement.php46
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntity.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntityReference.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNode.php14
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNodeList.php82
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNotation.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php10
-rw-r--r--vendor/fivefilters/readability.php/src/Nodes/DOM/DOMText.php10
15 files changed, 282 insertions, 0 deletions
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMAttr.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMAttr.php
new file mode 100644
index 0000000..1bdf395
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMAttr.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMAttr extends \DOMAttr
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCdataSection.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCdataSection.php
new file mode 100644
index 0000000..6ac3dcd
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCdataSection.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMCdataSection extends \DOMCdataSection
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCharacterData.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCharacterData.php
new file mode 100644
index 0000000..b196979
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMCharacterData.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMCharacterData extends \DOMCharacterData
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMComment.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMComment.php
new file mode 100644
index 0000000..3b691f4
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMComment.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMComment extends \DOMComment
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocument.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocument.php
new file mode 100644
index 0000000..d912338
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocument.php
@@ -0,0 +1,30 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMDocument extends \DOMDocument
+{
+ use NodeTrait;
+
+ public function __construct($version, $encoding)
+ {
+ parent::__construct($version, $encoding);
+
+ $this->registerNodeClass('DOMAttr', DOMAttr::class);
+ $this->registerNodeClass('DOMCdataSection', DOMCdataSection::class);
+ $this->registerNodeClass('DOMCharacterData', DOMCharacterData::class);
+ $this->registerNodeClass('DOMComment', DOMComment::class);
+ $this->registerNodeClass('DOMDocument', self::class);
+ $this->registerNodeClass('DOMDocumentFragment', DOMDocumentFragment::class);
+ $this->registerNodeClass('DOMDocumentType', DOMDocumentType::class);
+ $this->registerNodeClass('DOMElement', DOMElement::class);
+ $this->registerNodeClass('DOMEntity', DOMEntity::class);
+ $this->registerNodeClass('DOMEntityReference', DOMEntityReference::class);
+ $this->registerNodeClass('DOMNode', DOMNode::class);
+ $this->registerNodeClass('DOMNotation', DOMNotation::class);
+ $this->registerNodeClass('DOMProcessingInstruction', DOMProcessingInstruction::class);
+ $this->registerNodeClass('DOMText', DOMText::class);
+ }
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentFragment.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentFragment.php
new file mode 100644
index 0000000..33a3f95
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentFragment.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMDocumentFragment extends \DOMDocumentFragment
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentType.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentType.php
new file mode 100644
index 0000000..cf3cd0f
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMDocumentType.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMDocumentType extends \DOMDocumentType
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMElement.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMElement.php
new file mode 100644
index 0000000..b0da84f
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMElement.php
@@ -0,0 +1,46 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMElement extends \DOMElement
+{
+ use NodeTrait;
+
+ /**
+ * Returns the child elements of this element.
+ *
+ * To get all child nodes, including non-element nodes like text and comment nodes, use childNodes.
+ *
+ * @return DOMNodeList
+ */
+ public function children()
+ {
+ $newList = new DOMNodeList();
+ foreach ($this->childNodes as $node) {
+ if ($node->nodeType === XML_ELEMENT_NODE) {
+ $newList->add($node);
+ }
+ }
+ return $newList;
+ }
+
+ /**
+ * Returns the Element immediately prior to the specified one in its parent's children list, or null if the specified element is the first one in the list.
+ *
+ * @see https://wiki.php.net/rfc/dom_living_standard_api
+ * @return DOMElement|null
+ */
+ public function previousElementSibling()
+ {
+ $previous = $this->previousSibling;
+ while ($previous) {
+ if ($previous->nodeType === XML_ELEMENT_NODE) {
+ return $previous;
+ }
+ $previous = $previous->previousSibling;
+ }
+ return null;
+ }
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntity.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntity.php
new file mode 100644
index 0000000..751b59c
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntity.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMEntity extends \DOMEntity
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntityReference.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntityReference.php
new file mode 100644
index 0000000..d6fd6d4
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMEntityReference.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMEntityReference extends \DOMEntityReference
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNode.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNode.php
new file mode 100644
index 0000000..4a3ab0d
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNode.php
@@ -0,0 +1,14 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+/**
+ * @method getAttribute($attribute)
+ * @method hasAttribute($attribute)
+ */
+class DOMNode extends \DOMNode
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNodeList.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNodeList.php
new file mode 100644
index 0000000..a718c00
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNodeList.php
@@ -0,0 +1,82 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+/**
+ * Class DOMNodeList.
+ *
+ * This is a fake DOMNodeList class that allows adding items to the list. The original class is static and the nodes
+ * are defined automagically when instantiating it. This fake version behaves exactly the same way but adds the function
+ * add() that allows to insert new DOMNodes into the DOMNodeList.
+ *
+ * It cannot extend the original DOMNodeList class because the functionality behind the property ->length is hidden
+ * from the user and cannot be extended, changed, or tweaked.
+ */
+class DOMNodeList implements \Countable, \IteratorAggregate
+{
+ /**
+ * @var array
+ */
+ protected $items = [];
+
+ /**
+ * @var int
+ */
+ protected $length = 0;
+
+ /**
+ * To allow access to length in the same way that DOMNodeList allows.
+ *
+ * {@inheritdoc}
+ */
+ public function __get($name)
+ {
+ switch ($name) {
+ case 'length':
+ return $this->length;
+ default:
+ trigger_error(sprintf('Undefined property: %s::%s', static::class, $name));
+ }
+ }
+
+ /**
+ * @param DOMNode|DOMElement|DOMComment $node
+ *
+ * @return DOMNodeList
+ */
+ public function add($node)
+ {
+ $this->items[] = $node;
+ $this->length++;
+
+ return $this;
+ }
+
+ /**
+ * @param int $offset
+ *
+ * @return DOMNode|DOMElement|DOMComment
+ */
+ public function item(int $offset)
+ {
+ return $this->items[$offset];
+ }
+
+ /**
+ * @return int|void
+ */
+ public function count(): int
+ {
+ return $this->length;
+ }
+
+ /**
+ * To make it compatible with iterator_to_array() function.
+ *
+ * {@inheritdoc}
+ */
+ public function getIterator(): \ArrayIterator
+ {
+ return new \ArrayIterator($this->items);
+ }
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNotation.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNotation.php
new file mode 100644
index 0000000..d276e42
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMNotation.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMNotation extends \DOMNotation
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php
new file mode 100644
index 0000000..82c69cf
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMProcessingInstruction.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMProcessingInstruction extends \DOMProcessingInstruction
+{
+ use NodeTrait;
+}
diff --git a/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMText.php b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMText.php
new file mode 100644
index 0000000..6a5716c
--- /dev/null
+++ b/vendor/fivefilters/readability.php/src/Nodes/DOM/DOMText.php
@@ -0,0 +1,10 @@
+<?php
+
+namespace fivefilters\Readability\Nodes\DOM;
+
+use fivefilters\Readability\Nodes\NodeTrait;
+
+class DOMText extends \DOMText
+{
+ use NodeTrait;
+}