PHP deprecation error with PHP 8.3.1

Created on 25 June 2024, 10 months ago

Problem/Motivation

Using PHP 8.3.1 locally for development, I am seeing the following error message whenever there is an H5P object on the page...

Deprecated function: Creation of dynamic property H5PCore::$relativePathRegExp is deprecated in H5PCore->__construct() (line 2080 of vendor\h5p\h5p-core\h5p.classes.php).
H5PCore->__construct(Object, Object, '/', 'en', 1) (Line: 59)
Drupal\h5p\H5PDrupal\H5PDrupal::getInstance() (Line: 110)
Drupal\h5p\H5PDrupal\H5PDrupal::getGenericH5PIntegrationSettings() (Line: 54)
Drupal\h5p\Plugin\Field\FieldFormatter\H5PDefaultFormatter->viewElements(Object, 'en') (Line: 91)
Drupal\Core\Field\FormatterBase->view(Object, 'en') (Line: 268)
Drupal\Core\Entity\Entity\EntityViewDisplay->buildMultiple(Array) (Line: 340)
Drupal\Core\Entity\EntityViewBuilder->buildComponents(Array, Array, Array, 'default') (Line: 282)
Drupal\Core\Entity\EntityViewBuilder->buildMultiple(Array) (Line: 18)
Drupal\paragraphs\ParagraphViewBuilder->buildMultiple(Array) (Line: 239)
Drupal\Core\Entity\EntityViewBuilder->build(Array)
call_user_func_array(Array, Array) (Line: 113)
Drupal\Core\Render\Renderer->doTrustedCallback(Array, Array, 'Render #pre_render callbacks must be methods of a class that implements \Drupal\Core\Security\TrustedCallbackInterface or be an anonymous function. The callback was %s. See https://www.drupal.org/node/2966725', 'exception', 'Drupal\Core\Render\Element\RenderCallbackInterface') (Line: 870)
Drupal\Core\Render\Renderer->doCallback('#pre_render', Array, Array) (Line: 432)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68)
__TwigTemplate_a71a86ba188e0c1e5b7468b2b59a127b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/bit_by_bit/templates/field.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 504)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 112)
__TwigTemplate_3b29c2559aee0f68e2d79465d7c6c105->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/bit_by_bit/templates/node--level-2.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68)
__TwigTemplate_a71a86ba188e0c1e5b7468b2b59a127b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/bit_by_bit/templates/field.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 504)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->block_content(Array, Array) (Line: 430)
Twig\Template->yieldBlock('content', Array, Array) (Line: 61)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->block_paragraph(Array, Array) (Line: 430)
Twig\Template->yieldBlock('paragraph', Array, Array) (Line: 47)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('modules/contrib/paragraphs/templates/paragraph.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('paragraph', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68)
__TwigTemplate_a71a86ba188e0c1e5b7468b2b59a127b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/bit_by_bit/templates/field.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 504)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 74)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->block_content(Array, Array) (Line: 430)
Twig\Template->yieldBlock('content', Array, Array) (Line: 61)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->block_paragraph(Array, Array) (Line: 430)
Twig\Template->yieldBlock('paragraph', Array, Array) (Line: 47)
__TwigTemplate_a25a3d0d22f41b68420f3b65084cd59b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('modules/contrib/paragraphs/templates/paragraph.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('paragraph', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 68)
__TwigTemplate_a71a86ba188e0c1e5b7468b2b59a127b->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/custom/bit_by_bit/templates/field.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('field', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array) (Line: 504)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array) (Line: 475)
Drupal\Core\Template\TwigExtension->escapeFilter(Object, Array, 'html', NULL, 1) (Line: 111)
__TwigTemplate_1809e20b4abfbe1b2c3405b03d5e71a2->doDisplay(Array, Array) (Line: 360)
Twig\Template->yield(Array) (Line: 335)
Twig\Template->render(Array) (Line: 38)
Twig\TemplateWrapper->render(Array) (Line: 33)
twig_render_template('themes/contrib/bootstrap5/templates/content/node.html.twig', Array) (Line: 348)
Drupal\Core\Theme\ThemeManager->render('node', Array) (Line: 491)
Drupal\Core\Render\Renderer->doRender(Array, ) (Line: 248)
Drupal\Core\Render\Renderer->render(Array, ) (Line: 238)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{closure}() (Line: 638)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 231)
Drupal\Core\Render\MainContent\HtmlRenderer->prepare(Array, Object, Object) (Line: 128)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse(Array, Object, Object) (Line: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray(Object, 'kernel.view', Object)
call_user_func(Array, Object, 'kernel.view', Object) (Line: 111)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch(Object, 'kernel.view') (Line: 186)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 270)
Drupal\shield\ShieldMiddleware->bypass(Object, 1, 1) (Line: 137)
Drupal\shield\ShieldMiddleware->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 741)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)

My system

Drupal 10.3.0
Apache/2.4.33 (Win64) OpenSSL/1.0.2u mod_fcgid/2.3.9 PHP/8.3.1
PHP 8.3.1, memory limit: 256M
MySQL 5.7.24
PHP Caching module: OpCache

Front end theme 
A custom subtheme Bootstrap5 (Bootstrap5 3.0.10)
πŸ› Bug report
Status

Active

Component

Code

Created by

πŸ‡¬πŸ‡§United Kingdom SirClickALot Somerset

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @SirClickALot
  • πŸ‡ΊπŸ‡ΈUnited States jakegibs617

    I am seeing the following to be fixed:

    Deprecated function: Creation of dynamic property H5PCore::$url is deprecated in H5PCore->__construct() (line 2070 of /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-core/h5p.classes.php).
    
    Deprecated function: Creation of dynamic property H5PCore::$development_mode is deprecated in H5PCore->__construct() (line 2072 of /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-core/h5p.classes.php).
    
    Deprecated function: Creation of dynamic property H5PCore::$aggregateAssets is deprecated in H5PCore->__construct() (line 2074 of /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-core/h5p.classes.php).
    
    Deprecated function: Creation of dynamic property H5PCore::$fullPluginPath is deprecated in H5PCore->__construct() (line 2077 of /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-core/h5p.classes.php).
    
    Deprecated function: Creation of dynamic property H5PCore::$relativePathRegExp is deprecated in H5PCore->__construct() (line 2080 of /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-core/h5p.classes.php).
    
  • πŸ‡ΊπŸ‡ΈUnited States jakegibs617

    and more:

    PHP Deprecated:  H5peditor::getLibraryData(): Optional parameter $prefix declared before required parameter $defaultLanguage is implicitly treated as a required parameter in /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-editor/h5peditor.class.php on line 376
    
    Deprecated: H5peditor::getLibraryData(): Optional parameter $prefix declared before required parameter $defaultLanguage is implicitly treated as a required parameter in /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-editor/h5peditor.class.php on line 376
    
    PHP Deprecated:  H5peditor::getLibraryData(): Optional parameter $fileDir declared before required parameter $defaultLanguage is implicitly treated as a required parameter in /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-editor/h5peditor.class.php on line 376
    
    Deprecated: H5peditor::getLibraryData(): Optional parameter $fileDir declared before required parameter $defaultLanguage is implicitly treated as a required parameter in /Applications/MAMP/htdocs/my_app/vendor/h5p/h5p-editor/h5peditor.class.php on line 376
    
  • πŸ‡ΊπŸ‡ΈUnited States jakegibs617

    Fatal error: Declaration of Drupal\h5p\H5PDrupal\H5PDrupal::fetchExternalData($url, $data = null, $blocking = true, $stream = null) must be compatible with H5PFrameworkInterface::fetchExternalData($url, $data = null, $blocking = true, $stream = null, $fullData = false, $headers = [], $files = [], $method = 'POST') in /Applications/MAMP/htdocs/my_app/modules/contrib/h5p/src/H5PDrupal/H5PDrupal.php on line 294

  • πŸ‡ΊπŸ‡ΈUnited States jakegibs617

    Doing it this way... there was a lot of issues, but this seems to resolve them for me

      "repositories": {
        "drupal/h5p": {
          "type": "vcs",
          "url": "https://git.drupalcode.org/issue/h5p-3456909"
        },
    ...
      "require": {
        "drupal/h5p": "dev-3456909-php-deprecated-errors as 2.0.x-dev"
    ...
      "extra": {
        "patches": {
          "h5p/h5p-editor": {
            "Fix PHP 8 deprecation issue": "../../../modules/contrib/h5p/patches/fix-php-8-deprecation-issue.patch"
          },
Production build 0.71.5 2024