On Thursday, 18 January 2024 at 20:08, Niels Dossche <dossche.ni...@gmail.com> wrote: > Hi Gina > > On 18/01/2024 14:05, Gina P. Banyard wrote: > > > Hello Niels, > > > > Thank you for the RFC and the thorough overview of the current state. > > > > I think converting the new aliases to proper classes which have the correct > > spec behaviour is indeed the way to proceed. > > > > I do have some questions however, do you really think we need the > > DOMDocument methods to import modern nodes into legacy documents? > > As I can imagine, this would provide fewer incentives for users to move to > > the new spec compliant classes. > > > It's a double-edged sword: if we don't provide it, it becomes harder to > migrate and it may take a longer time to do so. > If we do provide it there may be fewer incentives. > > I think it's necessary as a first step to aid migration, otherwise, if we > don't provide this, it's going to become more difficult for library > maintainers as they'd have to effectively create two versions of their > library in some cases. > By creating these methods it may become possible to use libraries that are > not yet adapted to the new classes. So depending on your point of view it may > even accelerate adoption. > One caveat is, as always, that any migration can be hindered if a library you > try to use relies on bugs that are fixed in the new classes.
Understandable, I suppose we can always deprecate the import modern node methods before the import legacy nodes. > > The other thing to clarify is why and when would those return false, > > compared to the methods that import legacy nodes which never throw? > > {import,adopt}ModernNode may return false or throw, depending on the > $strictErrorChecking property of DOMDocument, when an error occurs. > The only possible error case really is when an unsupported node is > imported/adopted (e.g. a document itself). > The reason we don't have the false return value for {import,adopt}LegacyNode > is because the DOM\{XML,HTML}Document class doesn't have a > $strictErrorChecking property, i.e. it always uses exceptions. ACK Best regards, Gina P. Banyard -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php