Всем привет. На некоторых проектах в новой компании нарвался на такую штуку, в шаблонах компонентов, например компонент 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 компонентов? Или нужно заранее продумывать структуру так чтобы не делать таких кастылей?
Всё сбудется, стоит только расхотеть...