Symfony2会话 - 正确启动和检索

时间:2016-01-25 21:20:11

标签: php symfony session

我使用Symfony2与API通信然后启动会话。我让OauthCallbackController.php完成授权过程,然后启动会话并设置一些变量。然后,我希望能够从其他控制器访问这些变量,以确保我有权访问API。

我在Symfony2会话中已经阅读了很多不同(且令人困惑)的方法,现在我在下面使用:

use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\RedirectResponse;

class OauthCallbackController extends Controller
{
public function callbackAction(Request $request)
{

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


    // Oauth Code here
    $json_response = curl_exec($curl);
    $response = json_decode($json_response, true);
    $access_token = $response['access_token'];
    $instance_url = $response['instance_url'];


    $session->set('access_token', $access_token);
    $session->set('instance_url', $instance_url);

    return new RedirectResponse("rootpage.com");

}
}

这就是我认为启动会话的方式,但我无法弄清楚如何在其他控制器中使用/访问此会话。因此,如果有人可以帮助我,或者如果我错误地创建了会话,请提供反馈。

1 个答案:

答案 0 :(得分:1)

您不需要自己开始会话(Symfony会为您做这件事),也不需要创建自己的Session对象。

在您的控制器中,您可以从Request对象获取Symfony提供的会话对象。

$session = $request->getSession();

这就是全部。您可以阅读有关它的文档here