20

重新安装我的 wamp 环境后,我打开 app_dev.php 后屏幕上会显示此错误消息:

致命错误:无法在第 532 行的 C:...\app\cache\dev\classes.php 中重新声明类 SessionHandlerInterface

有谁知道出了什么问题?

4

7 回答 7

44

我解决了它清除缓存:

app/console cache:clear
于 2013-03-12T17:24:05.690 回答
22

PHP 5.4版引入了一个新的会话管理系统,它基于一个名为的接口SessionHandlerInterface,看起来您的 Symfony2 代码在全局命名空间中声明了一个具有相同名称的类,因此存在名称冲突。

以下是文档:http ://www.php.net/manual/en/class.sessionhandlerinterface.php

SessionHandlerInterface 是一个接口,它定义了用于创建自定义会话处理程序的原型。为了使用其 OOP 调用将自定义会话处理程序传递给 session_set_save_handler(),该类必须实现此接口。

于 2013-02-04T16:11:24.773 回答
14

简单的清除缓存对我不起作用。它要求使用以下命令清除生产缓存。

php app/console cache:clear --env=prod --no-debug
于 2013-07-21T21:55:57.150 回答
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)
于 2013-12-05T10:10:26.323 回答
4

只有这对我有用rm -rf app/cache/*

于 2014-09-16T07:56:22.647 回答
2

确保您在接口 SessionHandlerInterface 中定义了命名空间

前任:

namespace app\cache\dev;
于 2013-11-15T16:23:19.850 回答
-1

即使在使用 app_dev.php 时,我也遇到了缓存问题。我会更改路线,但当我尝试通过浏览器访问它时它不会更新。

我尝试注释掉其中缓存的任何内容(如上所述)。这些都没有奏效。

如果我运行控制台缓存:清除它会修复它,但下一次路由更改会再次中断。我必须在每次保存时运行缓存:清除,这太荒谬了。

我的问题原来是因为我通过 SFTP 远程工作,PHP Storm(我的编辑器)在其部署配置中“保留时间戳”。一旦我更改了该配置,问题就消失了。显然,即使在开发环境中,也有一些正在查看文件时间戳的缓存。

于 2016-10-21T20:53:21.993 回答