Make WordPress Core

Changes between Initial Version and Version 1 of Ticket #56034, comment 21


Ignore:
Timestamp:
08/16/2022 09:48:06 PM (4 years ago)
Author:
jrf
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #56034, comment 21

    initial v1  
    33=== Regarding the traits:
    44
    5 * Together we have a semi-working proof of concept of the ForbidDynamicProperties trait with a huge amount of test (not all passing yet) and more tests are still needed.
    6 * There are concerns about the performance impact of the current solution. This will further investigation.
    7 * If we can smooth out the issues/failing tests, we can apply the same principle to the DeprecateDynamicProperties trait.
    8 * As this was nowhere near as straight forward as we originally thought, we've discussed and propose to publish these traits in a separate package - DynamicPropertyUtils - for WP to use as an external dependency. Consider this a give-back to the wider PHP community as a lot more projects will need to solve this issue in the near future.
     5* Together we have created a semi-working proof of concept of the ForbidDynamicProperties trait with a huge amount of tests (not all passing yet) and more tests are still needed.
     6* There are concerns about the performance impact of the current solution. This will need further investigation.
     7* If we can smooth out the issues/failing tests, we can apply the same principle to the `DeprecateDynamicProperties` trait.
     8* As this was nowhere near as straight forward as we originally thought, we've discussed and propose to publish these traits in a separate package - DynamicPropertyUtils - for WP to use as an external dependency. Consider this as a give-back to the wider PHP community as a lot more projects will need to solve this issue in the near future.
    99
    1010Actions items:
     
    1515
    1616* We've looked at and did an initial review of all of them. Luckily it is a limited list.
    17 * All of them need work, a number them can/should be removed, but need to safeguard that change with tests (and possible some changes/reverting of declared property visibilities). The work on this should include investigating whether and if so, how the properties "handled" in the magic methods are used by plugins/themes.
    18 * All of need additional tests.
    19 * We also would like to investigate/work on some patterns as examples for how to implement magic methods correctly. We'd also like to see if we can transform those patterns into re-usable traits, in which case, they'd be added to the separate package mentioned above.
     17* All of them need work, a number them can/should be removed, but we need to safeguard these change with tests to prevent BC-breaks (and possibly some changes/reverting of declared property visibilities is needed). The work on this should include investigating whether and if so, how the properties "handled" in the magic methods are used by plugins/themes.
     18* All of the magic method implementations need (additional) tests.
     19* We also would like to investigate/work on some patterns as examples for how to implement magic methods correctly. We'd like to see if we can transform those patterns into re-usable traits, in which case, they'd be added to the separate package mentioned above.
    2020
    2121=== Regarding timing:
     
    2323Considering our current findings and the potential impact of any changes on Core and the wider extender field, we very much recommend for this ticket to move to the 6.2 milestone and be marked as early.
    2424
    25 Work should continue on creating the patches over the next month or two, to ensure they are ready and reviewed ahead of the 6.2 branch opening for commit. They should then be committed as soon as the branch opens to allow for maximum exposure of these changes to real-world testing.
     25Work should continue on creating the patches over the next month or two, to ensure the patches are ready and reviewed ahead of the 6.2 branch opening for commit. They should then be committed as soon as the branch opens to allow for maximum exposure of these changes to real-world testing.
    2626
    2727=== In the interim....