Page MenuHomePhorge

Deprecation warnings with PHP 8.3
OpenPublic

Asked by jasonrumney on Thu, May 29, 02:35.

Details

I've left the last few unexpanded, because it appears these have been fixed in the latest source (my instance where this was found is using the stable release)

There is some deprecated code found in the Phorge code-base.

This isn't a problem yet, but it means that Phorge might stop working if you upgrade PHP version.

This page records a sample of the cases since last server restart.

To solve this issue, either:

  • Visit Phorge's home page, file bug report with the information below, or
  • Ignore this issue using the Ignore button below.

PHP version: 8.3.21

Recorded items (sample):
PhabricatorEditorURIEngine.php:283, occurrences: 4
preg_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated
arcanist(head=stable, ref.master=989690868513, ref.stable=05abd055019c), libphremoteuser(head=clarion, ref.master=944307decd9c, ref.clarion=d0da6c048bd5), phorge(head=stable, custom=4), translations(head=wmf/stable, ref.wmf/stable=76bb64361cec)
#0 preg_replace(string, string, NULL) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:283]
#1 PhabricatorEditorURIEngine::escapeToken(NULL) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:144]
#2 PhabricatorEditorURIEngine::newURITokensForRepository() called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:128]
#3 PhabricatorEditorURIEngine::getURITokensForRepository(string) called at [<phorge>/src/infrastructure/editor/PhabricatorEditorURIEngine.php:84]
#4 PhabricatorEditorURIEngine::getURITokensForPath(string) called at [<phorge>/src/applications/differential/view/DifferentialChangesetDetailView.php:371]
#5 DifferentialChangesetDetailView::getEditorURITemplate() called at [<phorge>/src/applications/differential/view/DifferentialChangesetDetailView.php:272]
#6 DifferentialChangesetDetailView::render() called at [<phorge>/src/applications/differential/view/DifferentialChangesetListView.php:240]
#7 DifferentialChangesetListView::render() called at [<phorge>/src/view/AphrontView.php:222]
#8 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
#9 phutil_escape_html(DifferentialChangesetListView) called at [<phorge>/src/infrastructure/markup/render.php:139]
#10 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:139]
#11 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97]
#12 phutil_tag(string, array, array) called at [<phorge>/src/view/phui/PHUITwoColumnView.php:236]
#13 PHUITwoColumnView::buildFooter() called at [<phorge>/src/view/phui/PHUITwoColumnView.php:123]
#14 PHUITwoColumnView::getTagContent() called at [<phorge>/src/view/AphrontTagView.php:161]
#15 AphrontTagView::render() called at [<phorge>/src/view/AphrontView.php:222]
#16 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
#17 phutil_escape_html(PHUITwoColumnView) called at [<phorge>/src/infrastructure/markup/render.php:139]
#18 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:139]
#19 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97]
#20 phutil_tag(string, array, array) called at [<phorge>/src/view/formation/PHUIFormationContentView.php:13]
#21 PHUIFormationContentView::render() called at [<phorge>/src/view/AphrontView.php:222]
#22 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
#23 phutil_escape_html(PHUIFormationContentView) called at [<phorge>/src/infrastructure/markup/render.php:139]
#24 phutil_escape_html(array) called at [<phorge>/src/infrastructure/markup/render.php:97]
#25 phutil_tag(string, array, array) called at [<phorge>/src/view/formation/PHUIFormationView.php:58]
#26 PHUIFormationView::render() called at [<phorge>/src/view/AphrontView.php:222]
#27 AphrontView::producePhutilSafeHTML() called at [<phorge>/src/infrastructure/markup/render.php:115]
#28 phutil_escape_html(PHUIFormationView) called at [<phorge>/src/infrastructure/markup/render.php:171]
#29 phutil_implode_html(string, array) called at [<phorge>/src/view/page/PhabricatorBarePageView.php:58]
#30 PhabricatorBarePageView::willRenderPage() called at [<phorge>/src/view/page/PhabricatorStandardPageView.php:217]
#31 PhabricatorStandardPageView::willRenderPage() called at [<phorge>/src/view/page/AphrontPageView.php:46]
#32 AphrontPageView::render() called at [<phorge>/src/view/page/PhabricatorStandardPageView.php:918]
#33 PhabricatorStandardPageView::produceAphrontResponse() called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:724]
#34 AphrontApplicationConfiguration::produceResponse(AphrontRequest, PhabricatorStandardPageView) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:299]
#35 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
#36 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
PhabricatorOAuthServerTokenController.php:26, occurrences: 1
strlen(): Passing null to parameter #1 ($string) of type string is deprecated
arcanist(head=stable, ref.master=989690868513, ref.stable=05abd055019c), libphremoteuser(head=clarion, ref.master=944307decd9c, ref.clarion=d0da6c048bd5), phorge(head=stable, custom=4), translations(head=wmf/stable, ref.wmf/stable=76bb64361cec)
#0 PhabricatorOAuthServerTokenController::handleRequest(AphrontRequest) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:284]
#1 AphrontApplicationConfiguration::processRequest(AphrontRequest, PhutilDeferredLog, AphrontPHPHTTPSink, MultimeterControl) called at [<phorge>/src/aphront/configuration/AphrontApplicationConfiguration.php:203]
#2 AphrontApplicationConfiguration::runHTTPRequest(AphrontPHPHTTPSink) called at [<phorge>/webroot/index.php:35]
PhabricatorStandardPageView.php:641, occurrences: 1
PhabricatorStandardPageView.php:639, occurrences: 1
PhabricatorStandardPageView.php:637, occurrences: 1
PhabricatorStandardPageView.php:631, occurrences: 1
PhabricatorStandardPageView.php:629, occurrences: 1

New Answer