Page MenuHomePhorge

PhabricatorLiskDAO: Fragment serializer cache by class
Needs ReviewPublic

Authored by mainframe98 on Tue, Dec 24, 15:31.

Details

Summary

This restores the pre-PHP 8.1 behavior, where values of
static variables within inherited methods were independent
of each other. With PHP 8.1, this was changed to be truly
'static', which causes problems when one derivate of
PhabricatorLiskDAO defines a custom serializer but another
does not.

This came to light in T15726, but only for the Fund application,
which is a prototype, and deprecated. This fixes Fund, but
more importantly, everything else that would be broken by
this, whatever it was.

Ref: https://wiki.php.net/rfc/static_variable_inheritance

Test Plan

On PHP 8.1+:

  • Create a merchant
  • Create an initiative

Diff Detail

Repository
rP Phorge
Branch
fix-bc-break-with-static-in-functions-for-lisk
Lint
Lint Passed
Unit
Tests Skipped
Build Status
Buildable 1667
Build 1667: arc lint + arc unit