Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-31679

ChainRouterBcLayer not compatible with PHP 7.4 OPCache Preloading

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Open
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      OPCache Preloading is a performance feature added in PHP 7.4. According to my experience writing the blog post eZ Platform (master commit da04a3e7fe14e5ee1c76d1924dbf77b53755f62c) is mostly compatible with it, but Symfony\Cmf\Component\Routing\ChainRouterBaseBcLayer has an issue with it:

      Jun  9 14:41:22 |DEBUG| PHP    Reloading PHP versions
      Jun  9 14:41:22 |DEBUG| PHP    Using PHP version 7.4.3 (from default version in $PATH)
      Jun  9 14:41:22 |INFO | PHP    listening path="/usr/sbin/php-fpm7.4" php="7.4.3" port=43377
      Jun  9 14:41:22 |DEBUG| PHP    started
      Jun  9 14:41:23 |ERROR| PHP    PHP message: PHP Fatal error:  Uncaught Error: Class 'Symfony\Cmf\Component\Routing\ChainRouterBaseBcLayer' not found in /var/www/ezplatform/vendor/ezsystems/routing/src/ChainRouterBcLayer.php:41
      Jun  9 14:41:23 |DEBUG| PHP    Stack trace:
      Jun  9 14:41:23 |DEBUG| PHP    #0 /var/www/ezplatform/vendor/composer/ClassLoader.php(444): include()
      Jun  9 14:41:23 |DEBUG| PHP    #1 /var/www/ezplatform/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile()
      Jun  9 14:41:23 |DEBUG| PHP    #2 [internal function]: Composer\Autoload\ClassLoader->loadClass()
      Jun  9 14:41:23 |DEBUG| PHP    #3 /var/www/ezplatform/vendor/ezsystems/routing/src/ChainRouter.php(32): spl_autoload_call()
      Jun  9 14:41:23 |DEBUG| PHP    #4 /var/www/ezplatform/vendor/composer/ClassLoader.php(444): include('/var/www/ezplat...')
      Jun  9 14:41:23 |DEBUG| PHP    #5 /var/www/ezplatform/vendor/composer/ClassLoader.php(322): Composer\Autoload\includeFile()
      Jun  9 14:41:23 |DEBUG| PHP    #6 [internal function]: Composer\Autoload\ClassLoader->loadClass()
      Jun  9 14:41:23 |DEBUG| PHP    #7 /var/www/ezplatform/vendor/ezsystems/ezplatform-kernel/eZ/Publish/Core/MVC/Symfony/Routing/ChainRouter.php(13): spl_autoload_call()
      Jun  9 14:41:23 |DEBUG| PHP    #8 /var/www/ezplatform/vendor/composer/ClassLoader.php(444): include('...
      

      More details on how to reproduce, etc. blog post soon at https://www.ibexa.co/blog/how-much-of-a-performance-boost-can-you-expect-for-a-symfony-5-app-with-php-opcache-preloading

       

       

        Attachments

          Activity

            People

            Assignee:
            maciej.kobus@ibexa.co Maciej Kobus
            Reporter:
            jani.tarvainen@ibexa.co Jani Tarvainen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated: