Оптимизация за почистване на DLE кеш

file

Автор:MSWDLE версия:произволна

Допълнителни изисквания:- специален сървър (alkaya може да работи усилено върху хостинг) - активирана опция за изпълнение в php

Оптимизиране на изчистването на DLE кеша чрез преместване на функцията за изтриване на файлове от php команди към системни команди.

В момента изчистването на кеша в DLE се извършва на PHP функцията:

$fdir = opendir( ENGINE_DIR. '/кеш');

while ( $file = readdir( $fdir ) ) if( $file != '.' и $file != '..' и $file != '.htaccess' и $file != 'system' )

if( strpos( $file, $cache_area ) !== false ) @unlink( ENGINE_DIR . '/cache/' . $file );

@unlink( ENGINE_DIR . '/cache/' . $file );

от функцията става ясно, че четем съдържанието на директорията, като проверяваме дали файла е директория или друг файл и т.н. и след това изтрийте, ако файлът отговаря на критериите за проверка.

Защо не изпратите команда до сървъра за това? Той ще го направи по-бързо и не е необходимо да филтрирате директории, защото можете да посочите файловото разширение, с което да изтриете!

Решение: Файл: /engine/modules/functions.php Намиране на функция за изчистване на кеша:

функция clear_cache($cache_area = false)

$fdir = opendir( ENGINE_DIR. '/кеш');

while ( $file = readdir( $fdir ) ) if( $file != '.' и $file != '..' и $file != '.htaccess' и $file != 'system' )

if( strpos( $file, $cache_area ) !== false ) @unlink( ENGINE_DIR . '/cache/' . $file );

@unlink( ENGINE_DIR . '/cache/' . $file );

Сменете с нов:

Проверяваме: отидете в администраторския панел и кликнете - изчистете кеша, ако размерът на кеша сега е 0 - тогава всичко работи! Ако не е 0, тогава в новата функция трябва да замените: ".ENGINE_DIR."

до пълния път до папката engin, например:/var/www/my_site/engine/