Skip to content

Releases: s9e/SweetDOM

3.4.1 - Improved compatibility with PHP 8.4

27 Mar 01:06
3.4.1

Choose a tag to compare

3.4.0 - Added isEqualNode() polyfill

01 Jan 19:49
3.4.0

Choose a tag to compare

Added isEqualNode() polyfill to all extended classes:

  • s9e\SweetDOM\Attr
  • s9e\SweetDOM\Cdatasection
  • s9e\SweetDOM\Comment
  • s9e\SweetDOM\Document
  • s9e\SweetDOM\DocumentFragment
  • s9e\SweetDOM\Element
  • s9e\SweetDOM\Text

3.3.0 - Compatibility release

21 Dec 23:38
3.3.0

Choose a tag to compare

In order to improve compatibility with older versions of PHP as well as future versions of PHP, this release uses a different set of classes to implement node types depending on the PHP version. The base classes are those created directly in the s9e\SweetDOM namespace, and only those classes should be used when checking for class types.

Backward compatibility with older versions of PHP

On PHP older than 8.1.23, and on PHP versions from 8.2.0 to 8.2.9, the following methods are emulated:

  • ChildNode::after
  • ChildNode::before
  • ChildNode::replaceWith
  • ParentNode::append
  • ParentNode::prepend

Forward compatibility with future versions of PHP

The following methods have been modified to match PHP 8.3's behaviour with regards to disconnected nodes (nodes with no parent) and align with the DOM specification.

  • ChildNode::after
  • ChildNode::before
  • ChildNode::replaceWith

2.1.0.1

27 Nov 21:40
2.1.0.1

Choose a tag to compare

This is 2.1.0 + 4e08ac8 and it is expected to work on PHP 7.1.

PHPUnit 7.5.20 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.1.33
Configuration: /SweetDOM/phpunit.xml

..............................................S.S................ 65 / 70 ( 92%)
.....                                                             70 / 70 (100%)

Time: 40 ms, Memory: 4.00 MB

There were 2 skipped tests:

1) s9e\SweetDOM\Tests\ElementTest::testRemoveException
PHP >= 8.0 is required.

2) s9e\SweetDOM\Tests\ElementTest::testReplaceWithException
PHP >= 8.0 is required.

OK, but incomplete, skipped, or risky tests!
Tests: 70, Assertions: 70, Skipped: 2.

3.2.0

26 Nov 15:46
3.2.0

Choose a tag to compare

This version adds a polyfill for Element::replaceChildren() which is available in PHP 8.3.0. There is currently no plans to add a similar polyfill to other implementors.

Full Changelog: 3.1.0...3.2.0

3.1.0

15 Nov 02:58
3.1.0

Choose a tag to compare

This version adds support for batch operations via document fragments. For example:

$dom = new s9e\SweetDOM\Document;
$dom->loadXML('<x/>');

$x = $dom->firstOf('//x');
$x->appendDocumentFragment(
	// The callback will be executed before the fragment is appended
	fn($fragment) => $fragment->appendXML('<y/><z/>')
);

echo $dom->saveXML($x);
<x><y/><z/></x>

3.0.1

26 Oct 20:16
3.0.1

Choose a tag to compare

Full Changelog: 3.0.0...3.0.1

3.0.0

13 Oct 19:38
3.0.0

Choose a tag to compare

Full Changelog: 2.1.2...3.0.0

This is a major update with a number of deprecations. See UPGRADING.md for a conversion guide.

New features:

  • Magic methods now support the following DOM operations: after, append, before, prepend, and replaceWith.
  • Support for magic methods and XPath methods has been extended to more classes. See README.md for a list of classes.
  • s9e\SweetDOM\Document has a new $nodeCreator property that can be used to extend the range of nodes that can be created by magic methods.

PHP 8.3 support

08 Oct 17:17
2.1.2

Choose a tag to compare

Full Changelog: 2.1.1...2.1.2

s9e\SweetDOM\Element::insertAdjacentElement()'s signature has been made compatible with PHP 8.3.

2.1.1

05 Jun 19:13
2.1.1

Choose a tag to compare

Full Changelog: 2.1.0...2.1.1