Оптимізація очищення кешу DLE

Автор:MSWВерсія DLE:будь-яка
Додаткові вимоги:- виділений сервер (хоча може і на хостингу буде працювати) - включена опція виконання exec в php
Оптимізація очищення кеша DLE шляхом перенесення функції видалення файлів із команд php на команди системи.
На даний момент очищення кешу в ДЛЕ відбувається на функції пхп:
$fdir = opendir(ENGINE_DIR. '/cache');
while ( $file = readdir( $fdir ) ) if( $file != '.' and $file != '..' and $file != '.htaccess' and $file != 'system' )
if( strpos( $file, $cache_area ) !== false ) @unlink( ENGINE_DIR . '/cache/' . $file );
@unlink( ENGINE_DIR . '/cache/' . $file );
з функції видно що читаємо вміст директорії, перевіряючи чи є файл директорією чи іншим файлом тощо. а потім видаляємо якщо файл відповідає критеріям перевірки.
А чому б для цього не посилаючи команду серверу? Він то зробить це швидше і не треба робити відсіювання на директорії, адже можна вказати з яким розширенням видаляти файли!
Рішення: Файл: /engine/modules/functions.php Знайти функцію очищення кешу:
function clear_cache($cache_area = false)
$fdir = opendir(ENGINE_DIR. '/cache');
while ( $file = readdir( $fdir ) ) if( $file != '.' and $file != '..' and $file != '.htaccess' and $file != 'system' )
if( strpos( $file, $cache_area ) !== false ) @unlink( ENGINE_DIR . '/cache/' . $file );
@unlink( ENGINE_DIR . '/cache/' . $file );
Замінити на нову:
Перевіряємо: заходимо в адмінку і тиснемо - очистити кеш, якщо розмір кеша тепер 0 - значить все працює! Якщо не 0 - то в новій функції потрібно замінити: ".ENGINE_DIR."
на повний шлях до папки енжин, наприклад:/var/www/my_site/engine/