2013-03-08 44 views
0

我需要緩存我的主頁,這遠沒有概率,使用反向代理是不夠好Symfony2的ESI緩存中的用戶信息

但我也需要包括與獨立(ESI)的頭部分,讓我可以檢查用戶是否連接並顯示他的信息「hello Vincent」。

問題是,如果我這樣做,主頁(每頁)將不得不測試會話,並且當我使用PDO存儲時,我可以看到2個查詢在MySQL上爲每個用戶/頁面運行。

因此,我試圖添加一個簡單的「is_connected」cookie,並檢查其缺少呈現註銷版本而不詢問會話,但似乎只要我有一個防火牆讓匿名用戶它會要求會話。

我用盡了主意,我想看看人們爲此做了什麼,目標在主頁上根本沒有任何查詢。

謝謝

回答

0

主頁不需要測試會話。它應該公開緩存幷包含esi include標籤:

<esi:include src="/home/header_fragment.html" /> 

只有header_fragment資源需要測試用戶的會話以進行登錄。您可以將已登錄的用戶信息(名稱,電子郵件等)的小緩存存儲在已簽名的cookie中,並在header_fragment中讀取該信息以確定已登錄與已註銷,並且如果已登錄,則顯示用戶的名稱而不是查找數據存儲中的信息。