2011-12-22 13 views
8

W Yii, mam włączone buforowanie APC poprzez plik konfiguracyjny/main.php:Jak mogę wyłączyć buforowanie poprzez konfigurację w Yii?

'cache' => array(
    'class' => 'system.caching.CApcCache', 
), 

i to działa dobrze, gdy używam Yii wbudowanej metody buforowania:

Yii::app()->cache->set('key', $value); 

jednak czy istnieje sposób tymczasowego wyłączenia tego w oparciu o konfigurację? Nie chcę go włączać, gdy YII_DEBUG jest ustawiona na wartość true i chciałbym, aby $votes = Yii::app()->cache->get("key"); zawsze zwrócił wartość false, tak jak ma to miejsce, gdy jest pusta.

Próbowałem obracając się przez ten właśnie komentowania out ustawienia konfiguracji, ale daje (nieuzasadnione) błędy: Call to a member function get() on a non-object

Odpowiedz

11

Można skonfigurować klasę cache że nie buforuje w ogóle (tak wygrał Przechowuj wszystko, a get() zawsze zwróci FALSE).

Prawdopodobnie Yii już jest dostarczane bez pamięci podręcznej? Tak, to się nazywa, nazywa się CDummyCache i nie ma w ogóle buforowania.

Został napisany dla problemu, który zarysował w swoim pytaniu, że Yii::app()->cache jest NULL.

Zobacz CachingDocs.

-4

Spróbuj kod:

'cache' => array( 
     'class' => 'system.caching.CFileCache' 
    ), 
+1

Proszę wyjaśnić swoją odpowiedź w słowach, nie tylko w kodzie. I proszę wyjaśnić, w jaki sposób twoja odpowiedź różni się od drugiej odpowiedzi, ponieważ pytanie zostało udzielone prawie rok temu. –

+2

Chciałem * wyłączyć * buforowanie, a nie zmieniać mechanizmu buforowania. To by tylko zmieniło sposób przechowywania danych w pamięci podręcznej. –

+0

To tylko przykład, jak skonfigurować Yii do buforowania plików. Nie odpowiada na pytanie. Oznaczone do usunięcia. –

3

Jeśli trzeba wyłączyć pamięć podręczną tylko lokalnie dodać następujący kod do głównego-local.php. Zastąpi konfigurację pamięci podręcznej w pliku głównym.php.

CDummyCache niczego nie buforuje. Jest on zapewniony tak, że zawsze można skonfigurować komponent aplikacji "cache" i nie trzeba sprawdzać, czy Yii :: app() -> cache ma wartość null czy nie. Zastępując CDummyCache innym komponentem pamięci podręcznej, można szybko przełączyć się z trybu bez buforowania na tryb buforowania.

Yii 1.x: CDummyCache doc

Yii 2.x: DummyCache doc

+0

Powoduje to, że 'Class CDummyCache nie istnieje' –

+0

Jeśli używasz Yii 2.X w celu użycia yii \ caching \ DummyCache vs CDummyCache –

Powiązane problemy