Symfony'主控制器'开始会话?

时间:2012-10-16 23:27:56

标签: php symfony

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

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

1 个答案:

答案 0 :(得分:3)

要开始会话,你应该这样做:

use Symfony\Component\HttpFoundation\Session\Session;

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

Symfony documentation Sessions chapter说..

  

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