Fix PHP 8.1 "strlen(null)" exception which blocks rendering list of Active/All projects
Summary:
strlen() was used in Phabricator to check if a generic value is a non-empty string.
This behavior is deprecated since PHP 8.1. Phorge adopts phutil_nonempty_string() as a replacement.
Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_string() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.
Closes T15312
Test Plan:
Applied this change (on top of D25144, D25145, D25146, D25147, D25151, D25152, D25153 and /project/query/active/ rendered correctly in web browser.
Tested surfing various pages with and without Maniphest's maniphest.subtypes.
If you need some example custom fields, this is an example:
[ { "key": "default", "name": "Task" }, { "key": "bug", "name": "Bug" }, { "key": "log", "name": "LogSpam" }, { "key": "deadline", "name": "Deadline" } ]
Reviewers: O1 Blessed Committers, valerio.bozzolan
Reviewed By: O1 Blessed Committers, valerio.bozzolan
Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno
Maniphest Tasks: T15312
Differential Revision: https://we.phorge.it/D25162