Супербыстрый хостинг на SSD от 165р в месяц   •   Реклама
803 просм
0 комм
Поделиться:

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

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

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

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

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

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

А далее внедряем такую конструкцию:

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

$us_cache = $dle_api->load_from_cache("my_modules",  3600, "text");

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

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

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

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

Здесь:

my_modules – это название кэша, пишите свое по желанию, уникальное для каждого модуля.

3600 – время жизни кэша в секундах. В случае, если кэш устарел – происходит его перезапись (обновление).

text – данные возвращать в том виде, что записали. Если значение отличное от «text» – данные будут возвращены в виде массива.

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

0
комментариев
Гостям запрещено участвовать в обсуждениях сайта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник веб-мастера