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