From ab69bcccd9829eb05015ebfff083192b6735df87 Mon Sep 17 00:00:00 2001 From: Andre Klapper Date: Sat, 6 May 2023 04:03:37 +0200 Subject: [PATCH] Fix PHP 8.1 "strlen(null)" exceptions which block adding Dashboard to Project Menu 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 T15339 Test Plan: Applied these four changes and `/dashboard/install/1/project/` finally rendered in web browser. Reviewers: O1 Blessed Committers, valerio.bozzolan Reviewed By: O1 Blessed Committers, valerio.bozzolan Subscribers: speck, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T15339 Differential Revision: https://we.phorge.it/D25184 --- .../install/PhabricatorDashboardObjectInstallWorkflow.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/applications/dashboard/install/PhabricatorDashboardObjectInstallWorkflow.php b/src/applications/dashboard/install/PhabricatorDashboardObjectInstallWorkflow.php index eb1be21954..27e1335f6e 100644 --- a/src/applications/dashboard/install/PhabricatorDashboardObjectInstallWorkflow.php +++ b/src/applications/dashboard/install/PhabricatorDashboardObjectInstallWorkflow.php @@ -17,16 +17,16 @@ abstract class PhabricatorDashboardObjectInstallWorkflow $target_identifier = head($target_tokens); } - if (!strlen($target_identifier)) { + if (!phutil_nonempty_string($target_identifier)) { $target_identifier = $request->getStr('target'); } - if (!strlen($target_identifier)) { + if (!phutil_nonempty_string($target_identifier)) { $target_identifier = $this->getMode(); } $target = null; - if (strlen($target_identifier)) { + if (phutil_nonempty_string($target_identifier)) { $targets = array(); if (ctype_digit($target_identifier)) { @@ -74,7 +74,7 @@ abstract class PhabricatorDashboardObjectInstallWorkflow } $errors = array(); - if (strlen($target_identifier)) { + if (phutil_nonempty_string($target_identifier)) { if (!$target) { $errors[] = pht('Choose a valid object.'); } else if (!$can_edit) {