PackageTrack
Sign in Get early access

s9e/sweetdom

Syntactic sugar for the DOM API with a focus on XSLT 1.0 template manipulation.

3.4.1 2.4M downloads/mo #2756 most downloaded on Packagist s9e/SweetDOM

What this package is like to depend on

Last release 2 years ago

no release in 18 months

Ships unpredictably

gaps range from 9 days to 2.0 years

Most releases are documented

notes for 9 of 14 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

15 releases · first in 2020

0 releases in the last 12 months

see the full history below

Release timeline

15 releases · May 2020 to Mar 2024
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 15
  1. 3.4.1 23 Mar 2024
    Release notes

    Full Changelog: 3.4.0...3.4.1

    Open source →
  2. 3.4.0 01 Jan 2024
    Release notes

    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
    Open source →
  3. 3.3.0 21 Dec 2023
    Release notes

    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
    Open source →
  4. 3.2.0 26 Nov 2023
    Release notes

    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

    Open source →
  5. 3.1.0 15 Nov 2023
    Release notes

    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>
    Open source →
  6. 3.0.1 16 Oct 2023
    Release notes

    Full Changelog: 3.0.0...3.0.1

    Open source →
  7. 3.0.0 13 Oct 2023
    Release notes

    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.
    Open source →
  8. 2.1.2 07 Oct 2023

    Nothing published for this version

  9. 2.1.1 05 Jun 2023
    Release notes

    Full Changelog: 2.1.0...2.1.1

    Open source →
  10. 2.1.0 24 May 2021

    Nothing published for this version

  11. 2.0.0 08 Dec 2020

    Nothing published for this version

  12. 2.0.0-alpha.1 08 Dec 2020 pre-release

    Nothing published for this version

  13. 1.0.1 25 May 2020

    Nothing published for this version

  14. 1.0.0 24 May 2020

    Nothing published for this version

  15. 2.1.0.1 27 Nov 2023
    Release notes

    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.
    
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive