代码之家  ›  专栏  ›  技术社区  ›  Mathilde G.

致命错误:类Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy包含1个抽象方法…(Symfony2.8/PHP7)

  •  0
  • Mathilde G.  · 技术社区  · 7 年前

    几个月前,我们将公司内部网从Symfony 2.3升级到Symfony 2.8,从PHP 5.6升级到7.0.10。 我读到这可能是因为向服务传递了一些参数。我通过传递并仅将容器设置为属性来纠正这个问题,即使我不确信这是一个好的做法。

    在那之后,我们不再有这个问题。然而,两周后,一个新的“致命错误”随机出现:

    PHP Fatal error:  Class Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (SessionHandlerInterface::open) in C:\wamp\www\symfony\app\cache\prod\classes.php on line 393
    

    PHP Fatal error:  Class Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (SessionHandlerInterface::read) in C:\wamp\www\symfony\app\cache\prod\classes.php on line 393
    

    我们只需重新启动服务器,它就可以工作了。我看到很多人都有类似的错误,但我找不到任何真正的解决方法。我不知道这是一个PHP错误还是由于Symfony 2.8-PHP7不兼容引起的,尽管如此 Symfony achieves 100% PHP7 compatibility

    我将尝试了解此错误是否在内联网上的特定操作后出现。

    我希望我的问题有所不同,有人会找到解决办法。如果我忘了什么,或者你想看到代码的另一部分,请告诉我!

    我的配置:

    • WampServer 3.0.6:

      • Apache 2.4.23
      • MySQL:5.7.14
    • 符号:2.8.25

    • Composer version 1.5-dev (b07b4c3428a57b68e385ae3db0474e6c5400789b) 2017-04-28 09:25:51
      

    :

    {
        "name": "symfony/framework-standard-edition",
        "license": "MIT",
        "type": "project",
        "description": "The \"Symfony Standard Edition\" distribution",
        "autoload": {
            "psr-4": { "": "src/" },
            "classmap": [ "app/AppKernel.php", "app/AppCache.php" ]
        },
        "require": {
            "php": ">=5.3.9",
            "symfony/symfony": "2.8.*",
            "doctrine/orm": "^2.4.8",
            "doctrine/doctrine-bundle": "~1.4",
            "symfony/swiftmailer-bundle": "~2.3,>=2.3.10",
            "symfony/monolog-bundle": "^3.0.2",
            "sensio/distribution-bundle": "~5.0",
            "sensio/framework-extra-bundle": "^3.0.2",
            "incenteev/composer-parameter-handler": "~2.0",
            "friendsofsymfony/user-bundle": "v2.0.0-beta2",
            "friendsofsymfony/jsrouting-bundle": "dev-master",
            "liuggio/ExcelBundle": "2.0.*@dev",
            "knplabs/knp-snappy-bundle": "dev-master",
            "h4cc/wkhtmltopdf-amd64": "0.11.0-RC1",
            "symfony/intl": "^2.8",
            "symfony/property-access": "^3.2",
            "symfony/assetic-bundle": "^2.8"
        },
        "require-dev": {
            "sensio/generator-bundle": "~3.0",
            "escapestudios/symfony2-coding-standard": "~2.0"
        },
        "scripts": {
            "symfony-scripts": [
                "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
                "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
                "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
                "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
                "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
                "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
            ],
            "post-install-cmd": [
                "@symfony-scripts"
            ],
            "post-update-cmd": [
                "@symfony-scripts"
            ],
            "build-params": [
                "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters"
              ]
        },
        "config": {
            "bin-dir": "bin",
            "platform": {
                "php": "7.0.10"
            }
        },
        "extra": {
            "symfony-app-dir": "app",
            "symfony-web-dir": "web",
            "symfony-assets-install": "relative",
            "incenteev-parameters": {
                "file": "app/config/parameters.yml"
            },
            "branch-alias": {
                "dev-master": "2.8-dev"
            }
        }
    }
    

    作曲家秀 :

    composer/ca-bundle                     1.0.7
    doctrine/annotations                   v1.4.0
    doctrine/cache                         v1.6.1
    doctrine/collections                   v1.4.0
    doctrine/common                        v2.7.2
    doctrine/dbal                          v2.5.12
    doctrine/doctrine-bundle               1.6.8
    doctrine/doctrine-cache-bundle         1.3.0
    doctrine/inflector                     v1.1.0
    doctrine/instantiator                  1.0.5
    doctrine/lexer                         v1.0.1
    doctrine/orm                           v2.5.6
    escapestudios/symfony2-coding-standard 2.11.0
    friendsofsymfony/jsrouting-bundle      dev-master 31462ad
    friendsofsymfony/user-bundle           2.0.0-beta2
    h4cc/wkhtmltopdf-amd64                 0.11.0-RC1
    incenteev/composer-parameter-handler   v2.1.2
    ircmaxell/password-compat              v1.0.4
    jdorn/sql-formatter                    v1.2.17
    knplabs/knp-snappy                     v0.5.0
    knplabs/knp-snappy-bundle              dev-master 40b780f
    kriswallsmith/assetic                  v1.4.0
    liuggio/ExcelBundle                    dev-master a028c00
    monolog/monolog                        1.23.0
    paragonie/random_compat                v2.0.10
    phpoffice/phpexcel                     1.8.1
    psr/log                                1.0.2
    sensio/distribution-bundle             v5.0.20
    sensio/framework-extra-bundle          v3.0.26
    sensio/generator-bundle                v3.1.6
    sensiolabs/security-checker            v4.0.4
    squizlabs/php_codesniffer              2.9.1
    swiftmailer/swiftmailer                v5.4.8
    symfony/assetic-bundle                 v2.8.2
    symfony/inflector                      v3.3.5
    symfony/monolog-bundle                 v3.1.0
    symfony/polyfill-apcu                  v1.4.0
    symfony/polyfill-intl-icu              v1.4.0
    symfony/polyfill-mbstring              v1.4.0
    symfony/polyfill-php54                 v1.4.0
    symfony/polyfill-php55                 v1.4.0
    symfony/polyfill-php56                 v1.4.0
    symfony/polyfill-php70                 v1.4.0
    symfony/polyfill-util                  v1.4.0
    symfony/property-access                v3.3.5
    symfony/security-acl                   v3.0.0
    symfony/swiftmailer-bundle             v2.6.2
    symfony/symfony                        v2.8.25
    twig/twig                              v2.4.3
    willdurand/jsonp-callback-validator    v1.1.0
    

    这个问题刚刚被复制,我在打开intranet时看到它,所以我不知道它是在打开之前还是什么时候崩溃的。Symfony的prod.log中没有日志,但在php_error中。wamp日志,有两个错误:

    [2017年7月31日15:22:30欧洲/巴黎] (路径:C:\wamp\www\symfony\app/sessions) 在里面 C: \wamp\www\symfony\app\cache\prod\classes。php第156行

    C: \wamp\www\symfony\web\app.php:0

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾比索2。 Symfony\Component\HttpKernel\Kernel->句柄() C: \wamp\www\symfony\web\app.php:16

    Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->句柄() C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\HttpKernel\Kernel。php:185

    Symfony\Component\HttpKernel\HttpKernel->句柄()

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾比索5。 Symfony\Component\HttpKernel\HttpKernel->handleRaw()

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾比索6。 Symfony\Component\EventDispatcher\EventDispatcher->调度()

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾7。 Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

    C: \wamp\www\symfony\app\cache\prod\classes.php:1864

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾9。 Symfony\Component\Security\Http\Firewall->onKernelRequest()

    Symfony\Component\Security\Http\Firewall\LogoutListener->句柄()

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾比索11。 Symfony\Component\Security\Http\Logout\SessionLogoutHandler->注销() C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\Security\Http\Firewall\LogoutListener.php:127

    [2017年7月31日15:22:30欧洲/巴黎]菲律宾比索12。 Symfony\Component\HttpFoundation\Session\Session->无效() C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\Security\Http\Logout\SessionLogoutHandler.php:34

    Symfony\Component\HttpFoundation\Session\Session->迁移()

    Symfony\Component\HttpFoundation\Session\Storage\NativeSessionStorage->重新生成() C: \wamp\www\symfony\app\cache\prod\classes.php:533

    [2017年7月31日15:22:30欧洲/巴黎]PHP 15.session\u regenerate\u id() C: \wamp\www\symfony\app\cache\prod\classes.php:156

    PHP致命错误:类 Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy 包含3个抽象方法,因此必须声明为抽象或 SessionHandlerInterface::关闭,SessionHandlerInterface::写入) C: \wamp\www\symfony\app\cache\prod\classes。php第393行

    C: \wamp\www\symfony\web\app.php:0

    [2017年7月31日15:30:50欧洲/巴黎]菲律宾比索2。 C: \wamp\www\symfony\web\app.php:16

    [2017年7月31日15:30:50欧洲/巴黎]菲律宾比索3。 Symfony\Component\HttpKernel\Kernel->启动() C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\HttpKernel\Kernel。php:182

    [2017年7月31日15:30:50欧洲/巴黎]菲律宾比索4。 Symfony\Component\HttpKernel\Kernel->doLoadClassCache()

    [2017年7月31日15:30:50欧洲/巴黎]菲律宾比索5。 Symfony\Component\ClassLoader\ClassCollectionLoader::load() C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\HttpKernel\Kernel。php:411

    C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\ClassLoader\ClassCollectionLoader.php:96

    :

    Arf,2个循环参考再次出现:

    [2017-08-01 15:41:00]请求。关键: 处理时引发异常 例外情况 (Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException: 会话.存储。本地->细枝控制器。例外->细枝-> 安全。csrf。令牌管理器“ 在 第281行){“异常”:“[对象] 0):检测到服务“会话”的循环引用,路径: 细枝->安全.csrf.token\u管理器\“。位于 C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\DependencyInjection\Container.php:281)“} []

    例外情况 (Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException: 检测到服务的循环引用 “security.firewall.map.context.main-> security.authentication.rememberme.services.simplehash。主要-> fos_user.user_提供程序。用户名->fos_用户。用户管理器-> 安全.身份验证.管理器“ C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\DependencyInjection\Container.php 第281行){“异常”:“[对象] (Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException(代码: \“fos\u user.user\u provider.username\”,路径: \“security.firewall.map.context.main-> security.authentication.rememberme.services.simplehash。主要-> 细枝控制器。例外->细枝->安全授权检查器-> C: \wamp\www\symfony\vendor\symfony\symfony\src\symfony\Component\DependencyInjection\Container.php:281)“} []

    1 回复  |  直到 7 年前
        1
  •  1
  •   Robson Piere    7 年前

    我们在使用codeignaiter和PHP 7.1.X时遇到了同样的问题 我认为错误与opcache有关( here !) 扩展错误。

    我升级到了php 7.2,这个问题就不再出现了。