重新安装我的wamp环境后,打开app_dev.php后,屏幕上会显示此错误消息:
致命错误:无法在第5行的C:... \ app \ cache \ dev \ classes.php中重新声明类SessionHandlerInterface
有没有人知道出了什么问题?
答案 0 :(得分:43)
我解决了它清除缓存:
app/console cache:clear
答案 1 :(得分:22)
PHP版 5.4 引入了一个基于名为SessionHandlerInterface
的接口的新会话管理系统,看起来您的Symfony2代码在全局名称空间中声明了一个名称相同的类,所以有一个名字冲突。
以下是文档:http://www.php.net/manual/en/class.sessionhandlerinterface.php
SessionHandlerInterface是一个定义原型的接口 创建自定义会话处理程序。为了传递自定义会话 处理程序到session_set_save_handler()使用它的OOP调用, class必须实现这个接口。
答案 2 :(得分:14)
简单的清除缓存对我不起作用。它要求使用以下命令清除生产缓存。
php app/console cache:clear --env=prod --no-debug
答案 3 :(得分:7)
尝试使用下面的一个(或所有)命令清除Symfony2缓存:
php app/console cache:clear --env=prod --no-debug (on production mode)
或/和
php app/console cache:clear --env=dev --no-debug (on development mode)
答案 4 :(得分:3)
只有这对我有用rm -rf app/cache/*
答案 5 :(得分:2)
确保在接口SessionHandlerInterface
中定义了名称空间<强> EX:强>
namespace app\cache\dev;
答案 6 :(得分:-1)
即使使用app_dev.php,我也遇到了缓存问题。我会改变路线但是当我尝试通过浏览器访问它时它不会更新。
我试着评论出有缓存的东西(如上所述)。这些都没有效果。
如果我运行控制台缓存:清除它会修复它,但下一次路由更改会再次中断。我不得不运行缓存:清除每次保存,这很荒谬。
我的问题结果是因为我在SFTP上远程工作,PHP Storm(我的编辑器)在其部署配置中“保留了时间戳”。一旦我改变了配置,问题就消失了。显然有一些缓存正在查看文件时间戳,即使在开发环境中也是如此。