[wp-trac] [WordPress Trac] #56033: PHP 8.2: explicitly declare all known properties

WordPress Trac noreply at wordpress.org
Thu Aug 25 15:34:38 UTC 2022


#56033: PHP 8.2: explicitly declare all known properties
--------------------------------------------+-----------------------------
 Reporter:  jrf                             |       Owner:  SergeyBiryukov
     Type:  task (blessed)                  |      Status:  accepted
 Priority:  normal                          |   Milestone:  6.1
Component:  General                         |     Version:
 Severity:  normal                          |  Resolution:
 Keywords:  has-patch php82 has-unit-tests  |     Focuses:
--------------------------------------------+-----------------------------

Comment (by SergeyBiryukov):

 In [changeset:"53942" 53942]:
 {{{
 #!CommitTicketReference repository="" revision="53942"
 Code Modernization: Explicitly declare all properties in various tests.

 Dynamic (non-explicitly declared) properties are deprecated as of PHP 8.2
 and are expected to become a fatal error in PHP 9.0.

 In each of the cases included in this commit, one or more individual tests
 set a property to allow a filter or action access to certain information.

 This commit:
 * Explicitly declares these properties and documents in which tests they
 are being used.
 * Adds a reset to the default value of the property to a pre-existing
 `tear_down()` method or adds that method specifically for that purpose.
 This ensures that tests do not accidentally “taint” each other.

 As these properties are being declared on test classes, they are marked as
 private. Even though the original dynamic property was public, this should
 not be considered a backward compatibility break as this only involves
 test classes.

 Includes:
 * In the `Tests_Post_Query` class, there were two tests assigning a value
 to an undeclared `$post_id` property, but subsequently not using the
 property, so those assignments should have been to a local variable (if
 they should be assignments at all).
 * In the `Test_User_Capabilities` class, the property name had a leading
 `_` underscore. This is an outdated PHP 4 practice to indicate a private
 property. As PHP 4 is no longer supported, the leading underscore is
 removed from the property name.
 * In the `Tests_User_Capabilities` class, an unused
 `$_role_test_wp_roles_role` property was declared somewhere in the middle
 of the class. That property is now removed in favor of
 `$_role_test_wp_roles_init`, which appears to be the intended name,
 previously misspelled.

 Follow-up to [27294], [36277], [36750], [37712], [38571], [39082],
 [40290], [43049], [44628], [48328], [53557], [53558], [53850], [53851],
 [53852], [53853], [53854], [53856], [53916], [53935], [53936], [53937],
 [53938].

 Props jrf.
 See #56033.
 }}}

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/56033#comment:79>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list