我正在使用Symfony 2並使用wamp服務器。過了一段時間,我無法再訪問我的頁面,並且總是顯示這個異常,無法弄清楚原因。 下面是完整的堆棧跟蹤:DebugClassLoader.php中的ContextErrorException與ParameterBag類
in DebugClassLoader.php line 203
at DebugClassLoader->loadClass('Symfony\\Component\\HttpFoundation\\ParameterBag')
at spl_autoload_call('Symfony\\Component\\HttpFoundation\\ParameterBag') in Request.php line 240
at Request->initialize(array(), array(), array(), array(), array(), array([...]), null) in Request.php line 222
at Request->__construct(array(), array(), array(), array(), array(), array([...]), null) in Request.php line 1964
at Request::createRequestFromFactory(array(), array(), array(), array(), array(), array([...])) in Request.php line 281
at Request::createFromGlobals() in app_dev.php line 27
看來「DebugClassLoader」類使用反射來分析什麼是錯的,並獲得到ParameterBag類時,它拋出一個異常。一個var_dump()表明ParameterBag正在按預期實現\ IteratorAggregate和\ Countable,但也有一些隨機類「o」,我不知道它來自哪裏。
PROD環境將在Debian運行的Apache服務器,也許它會工作就可以了,但纔去住我最好解決這個問題對我目前的環境。
所有我可以處理ParameterBag的代碼是類似的東西:
$session = $request->getSession();
$session_id = $session->getId();
$webclient = $em->getRepository('AppBundle\Entity\WebClient')
->findOneBy(array("session_id" => $session_id));
...
另外請注意,清除緩存沒有解決這個問題。 (使用PHP斌/控制檯高速緩存:明確[--env =開發])
PS:重啓動Apache修復它,但它再次顯示後