Артём Мáлков

Кэширование данных в своем модуле для DLE на DLE API

17 фев0 комм

Когда я только начинал работать с CMS DataLife Engine, а именно писать свои дополнения для этого движка, я пренебрегал многими нюансами, которые рекомендуется в первую очередь внедрять в ту или иную наработку для этой CMS.

И, как вы уже поняли, сегодняшнюю статью я посвящу кэшированию данных. Кэширование (кэш) во многих случаях помогает значительно оптимизировать (ускорить) работу сайта, сократив тем самым чисто SQL-запросов и частое выполнение сложных алгоритмов.

В DataLife Engine существует встроенное API. Конечно, оно не обновлялось долгое время (насколько мне известно), но все же оно имеет набор готовых методов, которые позволяют решить самые разные задачи. Именно с помощью API мы и создадим кэш для своего модуля.

Итак, первое, что вам необходимо сделать – это в начале вашего модуля подключить файл API:

include('engine/api/api.class.php');

А далее (в этом же файле) внедряем такую конструкцию:

// Здесь лучше разместить уникальные запросы и код, которых не нужно кэшировать.

$use_cache = $dle_api->load_from_cache('my_modules',  3600, 'text');

if($use_cache === false) { // Если кэш отсутствует или больше указанного времени.
	
	// Неуникальные запросы и различная информация, которую необходимо кэшировать. Вставлять в переменную $content.
	
	$dle_api->save_to_cache('my_modules', $content); // Сохраняем/обновляем указанный кэш

	echo $content; // Выводим значение $content, так как кэш мы только создали/обновили
	
} else { // Если кэш существует и он меньше указанного времени.

	echo $use_cache; // Выводим данные из кэша
	
} 

Я постарался максимально ее расписать, то есть обозначить те области, куда и какие запросы/алгоритмы желательно вставлять.

Здесь:

  1. my_modules – это название кэша, пишите свое по желанию, уникальное для каждого модуля.
  2. 3600 – время жизни кэша в секундах. В случае, если кэш устарел – происходит его перезапись (обновление).
  3. text – данные возвращать в том виде, что записали. Если значение отличное от «text» – данные будут возвращены в виде массива.

Вот вроде и все. Если остались вопросы по внедрению функции кэширования данных в свой модуль для DataLife Engine – пишите об этом в комментариях, постараюсь вам помочь.

Рекомендуем к просмотру
Выводим статус пользователя в комментариях в DLE
Хаки
Как изменить стандартные URL-адреса модулей и страниц в uCoz?
Хаки
Как очистить кэш сайта в DLE?
Статьи и советы
0
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник вебмастера