Всем привет. На некоторых проектах в новой компании нарвался на такую штуку, в шаблонах компонентов, например компонент catalog.section используется дополнительное кеширование с помощью CPHPCache. Например:
тут по всей видимости получают курс евро и хранят его 2 часа в кеше, на сайте все цены в евро, и перевод в рубли осуществляется прямо в файле template.php компонента catalog.section. На мой взгляд это не совсем верно, ведь у компонента включён свой кеш, не лучше было бы запрашивать курс и сохранять его в кеше в файле section.php комплексного компонента до вызова компонента catalog.section , а в catalog.section передать значение курса в виде параметра? (редакция Старт, поэтому модуль валюты использовать не могу).
Ну и в общем допустимо ли использование кеша через CPHPCache непосредственно в template.php компонентов? Или нужно заранее продумывать структуру так чтобы не делать таких кастылей?
| Код |
|---|
$obCache = new CPHPCache;
$cacheLifetime = 7200;
$cacheID = "rateEURO";
$cachePath = "/rateEURO";
if ($cacheLifetime > 0 && $obCache->InitCache($cacheLifetime, $cacheID, $cachePath)) {
$res = $obCache->GetVars();
if (isset($res["rate"]) ) {
$rateEURO = $res["rate"];
}
}
if (!isset($rateEURO) || $rateEURO <= 0) {
$rateEURO = getCurs('EUR');
if ($cacheLifetime > 0) {
$obCache->StartDataCache();
$obCache->EndDataCache(array("rate" => $rateEURO));
}
} |
тут по всей видимости получают курс евро и хранят его 2 часа в кеше, на сайте все цены в евро, и перевод в рубли осуществляется прямо в файле template.php компонента catalog.section. На мой взгляд это не совсем верно, ведь у компонента включён свой кеш, не лучше было бы запрашивать курс и сохранять его в кеше в файле section.php комплексного компонента до вызова компонента catalog.section , а в catalog.section передать значение курса в виде параметра? (редакция Старт, поэтому модуль валюты использовать не могу).
Ну и в общем допустимо ли использование кеша через CPHPCache непосредственно в template.php компонентов? Или нужно заранее продумывать структуру так чтобы не делать таких кастылей?
Всё сбудется, стоит только расхотеть...