PHP Warning:  unlink

Ошибки при использовании модулей, установке и использовании опенкарта
Victor
Сообщения: 12
Зарегистрирован: 22.03.2022
Поблагодарил: 7 раз

PHP Warning:  unlink

Непрочитанное сообщение Victor »

Всем привет!
Появилась такая ошибка:
2023-04-26 4:08:00 - PHP Warning:  unlink(/home/d/............/cache/cache.catalog.language.1682485678): No such file or directory in /home/d/........../public_html/system/library/cache/file.php on line 68
Как её исправить?
Аватара пользователя
mazein
Разработчик дополнений
Сообщения: 92
Зарегистрирован: 17.03.2022
Откуда: РФ
Поблагодарил: 1 раз
Спасибо: 13 раз

Re: PHP Warning:  unlink

Непрочитанное сообщение mazein »

Это не ошибка
Аватара пользователя
spectrum
Разработчик дополнений
Сообщения: 71
Зарегистрирован: 10.03.2022
Мои дополнения: Spectrum
Поблагодарил: 43 раз
Спасибо: 32 раз

Re: PHP Warning:  unlink

Непрочитанное сообщение spectrum »

Victor писал(а): 26 апр 2023, 07:33 Всем привет!
Появилась такая ошибка:
2023-04-26 4:08:00 - PHP Warning:  unlink(/home/d/............/cache/cache.catalog.language.1682485678): No such file or directory in /home/d/........../public_html/system/library/cache/file.php on line 68
Как её исправить?

Warning - это предупреждение. Конкретно приведённое вами означает, что штатный файловый кеш опенкарт не нашел ранее созданный файл. Файл может быть удален по разным причинам, в том числе и вами ручной чисткой или с помощью каких-либо модулей.  На работу опенкарт это не повлияет.
Аватара пользователя
AlexDW
Разработчик дополнений
Сообщения: 194
Зарегистрирован: 13.03.2022
Откуда: Екатеринбург
Мои дополнения: alexdw
Поблагодарил: 44 раз
Спасибо: 72 раз

Re: PHP Warning:  unlink

Непрочитанное сообщение AlexDW »

Victor писал(а): 26 апр 2023, 07:33 PHP Warning:  unlink(/home/d/............/cache/cache.catalog.language.1682485678): No such file or directory in /home/d/........../public_html/system/library/cache/file.php on line 68
обычно такое происходит при излишнем кешировании со стороны файловой системы
когда файл еще числится в кеше, а физически его уже нет

в файле system\library\cache\file.php
замените все
unlink($file);

на
if (!@unlink($file)) {
    clearstatcache(true, $file);
}

и обновите кеш модификаторов для верности
Аватара пользователя
mazein
Разработчик дополнений
Сообщения: 92
Зарегистрирован: 17.03.2022
Откуда: РФ
Поблагодарил: 1 раз
Спасибо: 13 раз

Re: PHP Warning:  unlink

Непрочитанное сообщение mazein »

AlexDW писал(а): 26 апр 2023, 12:20 if (!@unlink($file)) {

тут предупреждение всё равно будет
Аватара пользователя
BuslikDrev
Разработчик дополнений
Сообщения: 134
Зарегистрирован: 22.04.2022
Откуда: Кіеўская Русь
Поблагодарил: 4 раз
Спасибо: 9 раз
Контактная информация:

Re: PHP Warning:  unlink

Непрочитанное сообщение BuslikDrev »

AlexDW писал(а): 26 апр 2023, 12:20
if (!@unlink($file)) {
    clearstatcache(true, $file);
}

                if (\is_file($file) && !@unlink($file)) {
                    clearstatcache(false, $file);
                }

И вообще убрать чистку всего кэша каждым пользователем, а просто сообщать, что кэш старый и не давать. А при создании нового удалит старый.
    public function get($key) {
        $files = glob(DIR_CACHE . 'cache.' . preg_replace('/[^A-Z0-9\._-]/i', '', $key) . '.*');

        if ($files && \is_file($files[0]) && substr(strrchr($files[0], '.'), 1) > time()) {
            clearstatcache(true, $files[0]);

            $size = filesize($files[0]);

            if ($size > 0) {
                $handle = fopen($files[0], 'r');

                if ($handle != false) {
                    flock($handle, LOCK_SH);

                    $data = fread($handle, $size);

                    flock($handle, LOCK_UN);

                    fclose($handle);

                    return json_decode($data, true);
                }
            }
        }

        return false;
    }
Ответить