Webアプリを作っていまして、フレームワークはSlimを使い、テンプレートエンジンはTwigを使っていました。
はじめのうちは、セッションに入れた情報をそのまま使わずに、PHPから変数でTwigに渡していました。しかし、いちいち変数を渡すのはめんどくさい。ViewたるTwigから、セッション情報を直接参照しても、何も問題はないでしょう。Twigでセッションを参照できる方法ないかなあと調べていたところ、ありました。
Using Twig functions inside of Slim
上記サイトに紹介されているとおりに書けば良さそうなのですが、少しハマりました。
セッションに情報を埋め込んだ後に書く必要があります。
つまり、
$app = \Slim\Slim::getInstance(); $twig = $app->view()->getEnvironment(); $twig->addGlobal("session", $_SESSION); $_SESSION['hoge'] = "hohoho";
ではなく、
$app = \Slim\Slim::getInstance(); $_SESSION['hoge'] = "hohoho"; $twig = $app->view()->getEnvironment(); $twig->addGlobal("session", $_SESSION);
と書かなければなりません。
これで、Twigでは、
{{session.hogehoge}}
という形で参照できます。