HomePhabricator

Work around change in SimpleXMLElement behavior introduced in PHP 7.3.17
f8ba06a7013cUnpublished

Authored by cscott on Apr 30 2020, 10:10 PM.

Unpublished Commit · Learn More

  • Publishing Disabled: All publishing is disabled for this repository.
  • Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

Work around change in SimpleXMLElement behavior introduced in PHP 7.3.17

Upstream bug reports of the behavior change introduced in PHP 7.3.17 (and
applied to PHP 7.4 branch as well):
https://bugs.php.net/bug.php?id=79528
https://bugs.php.net/bug.php?id=79485

The reponsible commit in PHP was https://github.com/php/php-src/pull/5246

This was a "bug fix" in the sense that SimpleXML used to discard the
attributes on the namespace elements, which look like this:

<namespace key="-2" case="first-letter">Media</namespace>

SimpleXML used to return this as a string "Media" instead of a
SimpleXMLElement... but ExportTest (inadvertently?) depended on that
behavior.

In any case, if we iterate over SimpleXMLElement::children() we always
get SimpleXMLElements, not "sometimes strings", and so our code will
correct correctly on PHP below 7.3.17 and above, regardless of how PHP
decides to handle this "bug".

Bug: T250568
Change-Id: I9c2cb6a86fd6e8023c1979ec6838071a87a7bcea
(cherry picked from commit 7f1ad7d9848782d025bad63149e058964fc37c97)

Details

Committed
ReedyApr 30 2020, 11:15 PM
Parents
rMW42e0b355e2a3: Optimize email sending on password reset
Branches
Unknown
Tags
Unknown
ChangeId
I9c2cb6a86fd6e8023c1979ec6838071a87a7bcea

Event Timeline