Przy okazji przeprowadzki anime.com.pl na nowy serwer zaktualizowałem wykorzystywane biblioteki, w tym ADOdb. W trakcie testów odkryłem, że coś jest nie tak z obsługą cache, a konkretnie czyszczenie zapamiętanych wyników przez CacheFlush()
nie działało. Po analizie kodu ADOdb odkryłem, że pierwszą rzeczą, którą robi CacheFlush()
jest sprawdzenie czy $ADODB_CACHE
jest ustawione:
global $ADODB_CACHE_DIR, $ADODB_CACHE; if (empty($ADODB_CACHE)) return false;
Problem polega na tym, że $ADODB_CACHE
jest inicjalizowane tylko w metodzie CacheExecute()
czyli innymi słowy, żeby skorzystać z CacheFlush()
trzeba najpierw wywołać CacheExecute()
. Moim zdaniem to błąd (wcześniej chyba tak nie było), zgłosiłem go i mam nadzieję, że zostanie poprawiony. W międzyczasie pozostaje poprawienie ADOdb na własną rękę lub wywoływanie CacheExecute()
przed CacheFlush()
.