The closures in ServiceContainer::$serviceInstantiators are circular
references which prevent destruction of the object. So, delete these
when destroy() is called. Also delete the service instances for good
measure.
Change-Id: Ic8487cb533a09a8fcc69eba4f5d1bbb71558ae08
Follows-up 1e680456b4, which removed some array_merge/call_user_func
abstraction, but improved readability a lot, but the absence of a
line break makes it slightly less obvious how and what parameters
are being passed. It's usually either comma-separated segments on
the same line that as the open parenthesis, or one expression per
line.
Change-Id: Ic388cf41ed3ed60d9b47c04392242e40cdcb69b0
Find: /isset\(\s*([^()]+?)\s*\)\s*\?\s*\1\s*:\s*/
Replace with: '\1 ?? '
(Everywhere except includes/PHPVersionCheck.php)
(Then, manually fix some line length and indentation issues)
Then manually reviewed the replacements for cases where confusing
operator precedence would result in incorrect results
(fixing those in I478db046a1cc162c6767003ce45c9b56270f3372).
Change-Id: I33b421c8cb11cdd4ce896488c9ff5313f03a38cf