Давайте рассмотрим возможности кеширования Joomla.
1. Включить кеширование в административной части в глобальных настройках, тогда кешироваться будут все компоненты и модули. Но при таком способе все равно какието части останутся не закешироваными. Блоки html возвращаемые компонентами и модулями в отдельных файлах будут храниться в папке cash.
2. Включить плагин системного кеша. Он будет целиком сохранять страницы в папку cash.
3. Если Вы написали свой компонент, что бы его закешировать в параметрах метода display нужно передать true. В главном контролере, который в вышем компоненте должно быть написано нечто подобное:
class ShopController extends JController
{
/**
* Method to display the view
*
* @access public
*/
function display()
{
parent::display(true);// Дописано true
}
}
В реальности кеширование выигрывает, только, когда Вы им убираете многие и сложные запросы к базе. Как можно закешировать отдельный метод или функцию в joomla. Для этого есть специальный класс.
$cache = & JFactory::getCache();// получаем ссылку на объект $cache->setCaching( 1 );// включаем кеширование
Дальше може вызвать функцию myFunction() вот так:
$rows = $cache -> call ( 'myFunction' ) ;
Или вызвать метод testMethod класса TestClass (TestClass::testMethod()):
$rows = $cache -> call ( array ( 'TestClass' , 'testMethod' ) ) ;
Передать параметры можно так:
$rows = $cache -> call ( array ( 'TestClass' , 'testMethod' ) , 'param' ) ;
Это вызов метода с $this ->:
$something = $this -> SomeOtherfunction ; $mySomething = $cache -> call ( array ( $something , 'somefunction' ) , 'par1' , 'par2' , 'par3' ) ;