Full Changelog: https://github.com/phpgt/Dom/compare/v4.2.0...v4.2.1
Select::options and optgroup bugfix by @g105b in https://github.com/phpgt/Dom/pull/470empty() behaves as expected with value property closes #471 by @g105b in https://github.com/phpgt/Dom/pull/472Full Changelog: https://github.com/phpgt/Dom/compare/v4.1.9...v4.2.0
All versions 8.1-8.5 are compatible in this release, resolving any depreciation warnings too.
Full Changelog: https://github.com/phpgt/Dom/compare/v4.1.8...v4.1.9
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.6...v4.1.7
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.6...v4.1.7
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.5...v4.1.6
This release is made today as the most recent version of PHP 8.1 and PHP 8.2 introduce a backwards-breaking change to DOMDocument::registerNodeClass() - Argument #2 ($extendedClass) must not be an abstract class. Thanks to @szymanek-event-it for the fix, using the correct instance of the current document object.
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.4...v4.1.5
(discussion regarding this change here: #424
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.3...v4.1.4
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.2...v4.1.3
This minor release introduces a lot more quality assurance checks in Github Actions, along with a small bugfix when using an element's data-* attributes.
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.1.0...v4.1.2
Thanks to @sidolov for their support keeping v2 up to date. This is a minor release with only a few tweaks to keep the v2 release compatible with the latest release of PHP.
Full Changelog: https://github.com/PhpGt/Dom/compare/v2.2.3...v2.2.4
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.0.3...v4.1.1
Thanks to @kartofelek007 for their help in diagnosing an issue relating to non-UTF-8 characters.
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.0.3...v4.1.0
This minor patch release introduces some changes to the attributes that are exposed on different HTMLElement classes. Each change brings the library closer to the W3C standard.
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.0.2...v4.0.3
Full Changelog: https://github.com/PhpGt/Dom/compare/v4.0.1...v4.0.2
In v3, a Facade was implemented to reach 100% compatibility with W3C's specification.
In this v4 release, we see a drop of the Facade to go back to a native DOMDocument extension. This is because the native libxml bindings are extremely performant, and plain PHP simply can't compete. We used the existing unit tests to ensure there isn't any regression in functionality, but there are certain new quirks due to the libxml implementation, clearly documented in the README.
In this release:
<script> tags (https://github.com/PhpGt/Dom/pull/324)This minor patch release compares between null and falsey values, fixing a bug where elements with "0" as their value would not be selected if they also had a textContent value.
value attribute of a HTMLSelectElementFull Changelog: https://github.com/PhpGt/Dom/compare/v3.0.0...v3.1.0
Massive thanks to @andrewbess for this improvement to the v2 release.
This new version has been a long time in development, but now is the time to make a formal v3 release.
The RC version releases were already fully unit tested, but have been used heavily in real world projects over the last few months, where many improvements have been found.
This stable release is being made after the last static analysis improvements have been made.
As always, have fun and stay productive!
This second release candidate is made ready for full release within the month. Included within this RC are minor tweaks, including typehint improvements and the implementation of RadioNodeList. Any future functionality will be made as subsequent v3 releases, the only updates this month will be minor tweaks or bugfixes.
In this release we take advantage of the facade design pattern to provide a set of classes that iron out any creases with the W3C DOM Specification. In previous versions, we were using libxml-provided classess (DOMDocument, DOMNode, etc.) and extending with our own functionality, but this meant that it was impossible to deviate from the inheritance model supplied by libxml.
The footprint of this version should be identical, but with added classes to represent the different types of Node extension.
Creating objects within the DOM is typically done through Factory classes, as most constructors are private to allow for more controlled/abstracted object creation.
Please test this release candidate and submit feedback through the issues list.
Have fun!
A few minor updates to the CI process have been made, along with a new test and functionality fix to innerHTML thanks to @speich.
value attribute, getting and setting on the same request would not persist data.disabled, checked, etc. all correspond to their correct HTML attributes.This release is very minor in scope, but has knock-on effects to DomTemplate, specifically PhpGt/DomTemplate#124
The changes in this release mean that setting an innerHTML of an empty string is much more efficient, and this can now be done on DocumentFragments too. Before, this would cause an exception, due to there not being a parent element.
Changes in DomTemplate are incoming so that binding an empty dataset to an list element will set the innerHTML to an empty string, which means that the :empty CSS selector will now be valid for empty lists.
There are no new features included within this release, just improvements to the way Element object properties are handled, and how Element and Document objects are tested. Have fun.
Unit test coverage on the Element class is now improved to 100%, thanks to @Jelmergu.
The Element class has been improved to take advantage of the new CssXPath updates, along with fixing getter/setter for the value attribute, and a check for the property map constant which improves working with non-html documents such as XML.
The value property of Elements is made more consistent in this release. Certain element types behave differently when getting or setting the value property - some access the value attribute directly, others affect the state of their children.
The PSR-7 StreamInterface has been implemented on the Document/HTMLDocument classes to improve interoperability when used within other frameworks. There is no new functionality due to this, so only a minor version increment is necessary.
Along with the interface implementation, a couple of bugfixes are released here too:
How can I help you explore Laravel packages today?