Symfony - 没有会话的Google bot请求

时间:2017-08-03 10:57:02

标签: php symfony session bots

我们在Symfony应用上收到此错误:

[Thu Aug 03 08:51:32.736638 2017] [proxy_fcgi:error] [pid 22386] [client 66.249.93.215:58094] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught Symfony\\Component\\Debug\\Exception\\FatalThrowableError: Call to a member function get() on null in /path/to/my/service.php:22

它出现的代码行是onKernelRequest侦听器:

 if (!empty($request->getSession()->get('_locale')))

我认为这意味着$request有一个空Session,但无法找到原因。

我们确定只会在Google抓取工具访问时抛出此错误,但我们无法弄清楚如何停止此错误。

我找到的唯一解决方案是创建一个新的Session并将其分配给Request,如果它为null,但它看起来不那么干净也不安全。

if(null === $request->getSession()) {
        $session = new Session();
        $request->setSession($session);
}

有关如何阻止这些错误的想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

if ($request->getSession() !== null && !empty($request->getSession()->get('_locale')))