# Исправление: Graceful Database Cleanup

## Проблема
Когда `cleanup_enabled = On`, приложение выдаёт ошибки при работе.
Когда `cleanup_enabled = Off`, приложение работает нормально.

## Решение (v2)
Переделан механизм cleanup с "агрессивного" на "graceful":

### ДО (вызывал ошибки):
```php
function cleanup() {
    if ($this->connected === true && $this->isConnected()) {
        @$this->dbconn->Disconnect();  // ← Явный disconnect вызывал проблемы
        $this->connected = false;
    }
}
```

### ПОСЛЕ (безопасно):
```php
function cleanup() {
    // Не вызываем Disconnect() - позволяем PHP закрыть соединение
    if (isset($this->dbconn)) {
        $this->connected = false;  // ← Просто помечаем что больше не используется
    }
}
```

## Почему это работает:
1. ✅ Не вызываем потенциально проблемный Disconnect()
2. ✅ PHP сам закроет соединение при завершении скрипта (деструктор ADOdb)
3. ✅ Соединение помечается как неиспользуемое (connected = false)
4. ✅ Нет явных ошибок или конфликтов

## Рекомендация:
1. Установите в config.inc.php:
```ini
[database]
cleanup_enabled = On
```

2. Очистите кеш:
```bash
rm -rf /var/www/prod.mia-letum.ru/cache/*
echo "flush_all" | nc localhost 11211
```

3. Протестируйте приложение - теперь должно работать без ошибок

## Если всё ещё есть ошибки:
Вы можете оставить `cleanup_enabled = Off` и проблема будет решена, но соединения будут накапливаться медленнее.

Однако, новый "graceful" подход должен работать корректно.

## Что делает graceful cleanup:
- Просто помечает соединение как готовое к закрытию
- Позволяет ADOdb и PHP самостоятельно обработать закрытие
- Не вмешивается в текущие операции
- Безопасно для многопроцессных сценариев
