0

我有各种调用启动会话的方法和类,有时会导致错误"Failed to start the session because headers have already been sent"

让我想知道,哪里是开始会议的好地方?每个请求只调用一次的地方,以及每个请求都调用的地方。像主控制器一样?

4

1 回答 1

3

要开始会话,您应该执行以下操作:

use Symfony\Component\HttpFoundation\Session\Session;

$session = new Session();
$session->start();

Symfony 文档会话章节说..

Symfony 会话旨在替换几个原生 PHP 函数。应用程序应避免使用 session_start()、session_regenerate_id()、session_id()、session_name() 和 session_destroy(),而应使用以下部分中的 API。

编辑

看看symfony/src/Symfony/Component/HttpFoundation/Session/Storage/NativeSessionStorage.php(第 142 行)

在您的文件session.use_cookies中启用了吗?php.ini

于 2012-10-16T23:55:50.213 回答