Блокнот, 6 августа 2012

Август 6, 2012

. В классе JModelList есть переменная $cache. Однако, в ней хранится кэш на время исполнения скрипта. Если обратиться дважды к методу getItems(), то 2-й вызов не станет делать запрос к БД.

Метод getStoreId() формирует уникальный ID для хранения кэша:

protected function getStoreId($id = '')
{
	// Add the list state to the store id.
	$id	.= ':'.$this->getState('list.start');
	$id	.= ':'.$this->getState('list.limit');
	$id	.= ':'.$this->getState('list.ordering');
	$id	.= ':'.$this->getState('list.direction');

	return md5($this->context.':'.$id);
}

Видно, что ID формируется на основе переменной $context. Она же задается в конструкторе:

// Guess the context as Option.ModelName.
if (empty($this->context)) {
	$this->context = strtolower($this->option.'.'.$this->getName());
}

Либо можно задать ее вручную в модели.

  • $this->option - название компонента;
  • $this->getName() - постфикс имени класса модели.

Tags:

Запись опубликована Понедельник, Август 6, 2012 в 18:22 и находится в Joomla, Блокнот . Вы можете следить за ответами к этой записи через RSS 2.0 ленту. Вы можете оставить комментарий, или обратиться к записи со своего сайта.

Оставить Комментарий

*