Symfony2 会话 - 正确的启动和检索


Symfony2 Session - Proper Start and Retrieval

我正在使用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");
}
}

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

你不需要自己启动一个会话(Symfony为你做),也不需要创建自己的Session对象。

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

$session = $request->getSession();

就这样。您可以在此处阅读有关它的文档。