Программирование на Joomla:: 7 урок Кеширование в Joomla

Давайте рассмотрим возможности кеширования 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' ) ;

Добавить комментарий


Защитный код
Обновить