1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 10:12:41 +01:00

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
This commit is contained in:
Andre Klapper 2023-05-01 15:55:22 +02:00
parent 313d3b7bf2
commit 6e88528370

View file

@ -43,11 +43,27 @@ final class PhabricatorEditEngineSubtype
return $this->icon; return $this->icon;
} }
/**
* Set the text of the tag
*
* This is usually the 'name' key of your subtype map.
* Sometime this is an uppercase text like 'BUG' for a 'bug' subtype name.
*
* @param string|null $text
* @return self
*/
public function setTagText($text) { public function setTagText($text) {
$this->tagText = $text; $this->tagText = $text;
return $this; return $this;
} }
/**
* Get the text of the tag
*
* @see PhabricatorEditEngineSubtype::setTagText()
*
* @return string|null
*/
public function getTagText() { public function getTagText() {
return $this->tagText; return $this->tagText;
} }
@ -89,7 +105,7 @@ final class PhabricatorEditEngineSubtype
} }
public function hasTagView() { public function hasTagView() {
return (bool)strlen($this->getTagText()); return phutil_nonempty_string($this->getTagText());
} }
public function newTagView() { public function newTagView() {