我遇到了CakePHP(2.3)CacheHelper的問題。 這真是一個強大的工具,但它不適合我在做什麼。CacheHelper以不同名稱保存相同的緩存文件
我有一個國際化的網站,該語言可以由用戶的偏好設置,也可以通過URL參數(lang:xx)「強制」來設置。
因此,緩存頁面「controller/action/yy」可以與「controller/action/yy/lang:xx」相同的頁面。最糟糕的是,「控制器/動作/ YY」可以用英語,法語或其他任何語言進行緩存。
有沒有辦法改變緩存文件的名稱(這裏的前綴顯然不是解決方案)(這樣「controller/action/yy」將總是被緩存爲「controller/action/yy/lang: xx「通過添加用戶的偏好語言)?
在此先感謝! 塞巴斯蒂安
你誤解了我的問題,我不知道詢問「如何以不同的名字緩存相同的文件」,但卻排除了「如何不使用不同的名字緩存相同的文件」。因此,如果語言偏好爲「english」,如何在「controller/action/yy/lang:en」下緩存請求的URL「controller/action/yy」。所以它不會將相同的文件保存在兩個不同的文件下。 – 2013-05-02 09:03:14
我給你添加了一個完整的例子來了解如何設置默認語言。我沒有明白你爲什麼選中「無用」。無論如何,我認爲這個例子會對你有用。 – Scoup 2013-05-02 14:02:32
不,實際上,這是行不通的。我不知道如何更好地解釋它... 如果未設置命名參數,則會有另一個文件保存在緩存中,因爲「controller/action/yy」不匹配「controller/action/yy /郎鹹平:XX」。所以會有兩個相同的緩存文件:「controller_action_yy」和「controller_action_yy_lang_xx」。前綴並沒有解決任何問題! – 2013-05-02 14:13:01