1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-01-07 05:11:05 +01:00
phorge-phorge/src/infrastructure
Andre Klapper 226f315093 Fix PHP 8.1 "strlen(null)" exception creating Blueprint Working Copy
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, however use `phutil_nonempty_scalar()` as the value might not necessarily be a string object.

Note: this may highlight other absurd input values that might be worth correcting
instead of just ignoring. If phutil_nonempty_scalar() throws an exception in your
instance, report it to Phorge to evaluate and fix that specific corner case.

```
EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=master, ref.master=788098096e11), phorge(head=arcpatch-D25239, ref.master=840a7fab2bc8, ref.arcpatch-D25239=870d62ce0ed9)
  #0 <#2> PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phorge>/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldInt.php:36]
```

Closes T15581

Test Plan:
Page `Create Blueprint` at `/drydock/blueprint/edit/form/default/` renders as expected in web browser.

Try also creating a custom integer field and put some fuzzy data.

https://we.phorge.it/book/phorge/article/custom_fields/

Test these values:

- 1 (stays as-is)
- 0 (stays as-is)
- 123.45 (becomes 123)
- a "lizard" (becomes zero)
- empty ("") (becomes empty)

Reviewers: O1 Blessed Committers, valerio.bozzolan

Reviewed By: O1 Blessed Committers, valerio.bozzolan

Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno

Maniphest Tasks: T15581

Differential Revision: https://we.phorge.it/D25371
2023-08-05 23:29:12 +02:00
..
cache Use "@" to silence "GC list" warnings from "apc_store()" and "apcu_store()" 2020-04-28 04:13:37 -07:00
cluster Fix PHP 8.1 strlen() error when database replication Seconds_Behind_Master is NULL 2023-06-30 13:49:32 +01:00
contentsource Fix PHP 8.1 "strlen(null)" exception which blocks creating personal and global Herald rules 2023-05-05 12:53:14 +02:00
customfield Fix PHP 8.1 "strlen(null)" exception creating Blueprint Working Copy 2023-08-05 23:29:12 +02:00
daemon Provide a default "loadPage()" implementation on "CursorPagedPolicyAwareQuery" 2022-05-24 10:18:53 -07:00
diff Fix PHP 8.1 "strlen(null)" exceptions block creating a diff in Differential web interface 2023-06-02 20:40:42 +02:00
edges Add a side nav to Conduit API method console pages 2021-07-21 14:16:59 -07:00
editor Fix PHP 8.1 PhabricatorEditorURIEngine::newForViewer() trim(NULL) error 2023-07-17 11:03:52 +01:00
env PHP 8.2: fixes for strlen() not accepting NULL anymore, part 1 2023-03-31 22:05:52 +02:00
events Remove "PhabricatorEventType::TYPE_DIFFUSION_LOOKUPUSER" event 2019-11-19 09:38:03 -08:00
export Remove product literal strings in "pht()", part 9 2022-04-25 12:22:29 -07:00
graph Render user hovercards with context information about their ability to see the context object 2021-02-13 13:37:37 -08:00
internationalization Update "Files" attachment table to show more attachment details and support detachment 2022-05-25 12:56:37 -07:00
javelin Make src/infrastructure/javelin/markup.php phabricator_form PHP 8.1 compliant 2023-06-30 15:13:20 +01:00
lint/linter Linter fixes 2015-12-03 07:44:23 +11:00
lipsum Continue moving classes with no callers in libphutil or Arcanist to Phabricator 2020-02-12 13:14:04 -08:00
log PHP 8.2: fixes for strlen() not accepting NULL anymore, part 1 2023-03-31 22:05:52 +02:00
management Add additional flags to "bin/repository rebuild-identities" to improve flexibility 2019-11-19 09:39:48 -08:00
markup Remarkup Code-block: parse language specifier in markdown 2023-07-04 18:23:14 +02:00
parser Correct spelling mistakes 2023-05-27 22:19:06 +01:00
query Fix PHP 8.1 "strlen(null)" and preg_match() exceptions which block rendering "Browse Subscribers" overlay dialog 2023-05-12 12:02:15 +02:00
ssh Generate a random unique "Request ID" for SSH requests so processes can coordinate better 2018-03-22 13:44:30 -07:00
status Give Drydock Leases more modern status treatment 2018-02-13 13:15:57 -08:00
storage Fix PHP 8.1 "strlen(null)" exceptions creating a Diffusion Identity without entering assignee 2023-06-08 14:52:26 +02:00
syntax Pass the new default syntax highlighting map to the remarkup engine 2016-05-05 02:51:19 -07:00
testing When running unit tests, ignore any custom task fields 2017-04-02 09:36:17 -07:00
time Render timezone names more readably, with spaces rather than underscores ("America/Los Angeles", not "America/Los_Angeles"). 2019-05-30 15:03:11 -07:00
util Remove product literal strings in "pht()", part 25 2022-04-25 16:46:26 -07:00
PhabricatorEditor.php Mark some strings for translation 2015-06-09 23:06:52 +10:00