ezyang / htmlpurifier

Standards compliant HTML filter written in PHP
http://htmlpurifier.org
GNU Lesser General Public License v2.1
3.07k stars 327 forks source link

Fix some PHP 8.2 deprecations #319

Closed TimWolla closed 2 years ago

TimWolla commented 2 years ago

PHP 8.2 deprecates the creation of dynamic properties on objects: https://wiki.php.net/rfc/deprecate_dynamic_properties. This pull request fixes some of the low-hanging fruit of properties that are dynamically created.

I've opted to use the public access modifier, as this most closely matches the previous behavior: Dynamically created properties are visible from everywhere. The only non-trivial – and possibly breaking – change is happening in RemoveSpansWithoutAttributes as that one does not add a dynamic property to itself, but to another object instead.

This pull request does not fix all deprecations, a follow up change will be required to fix the remainder.