Skip to content
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
PHP 8.2 | AtomParser: explicitly declare all properties
Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2 and are expected to become a fatal error in PHP 9.0.

There are a number of ways to mitigate this:
* If it's an accidental typo for a declared property: fix the typo.
* For known properties: declare them on the class.
* For unknown properties: add the magic `__get()`, `__set()` et al methods to the class or let the class extend `stdClass` which has highly optimized versions of these magic methods build in.
* For unknown _use of_ dynamic properties, the `#[AllowDynamicProperties]` attribute can be added to the class. The attribute will automatically be inherited by child classes.

In this case, the property added are explicitly referenced in this class, so fall in the "known property" category.

Refs:
* https://wiki.php.net/rfc/deprecate_dynamic_properties
  • Loading branch information
jrfnl committed Sep 17, 2024
commit 0e237e3bf9f0e0f2db5a1b14e5d18af0ce3451b0
4 changes: 4 additions & 0 deletions src/wp-includes/atomlib.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ class AtomParser {

var $feed;
var $current;
var $map_attrs_func;
var $map_xmlns_func;
var $error;
var $content;

/**
* PHP5 constructor.
Expand Down