Посмотреть кеширование с помощью PHP - PullRequest
2 голосов
/ 17 декабря 2011

У меня есть вопрос о кеше представления, предположим, у меня есть следующий блок кода:

<?php
    class View {          
        public function render ( $template , $path = null ) { } 
            // ...  
        }

Это мой 'MainView', в котором класс расширен во всех других представлениях, таких как 'ClientsView' .. и т. Д.

Но я хотел реализовать способ перехвата запроса на передачу через кеш, я говорю кешу, когда передаю этот параметр в метод рендеринга, или что-то в этом роде ... Я просто хотел сохранить контроль ... поэтому у меня есть «ViewCacheStorage», где вы будете хранить файлы, которые кэшируются, и оставшееся время до истечения срока действия каждого кэша, каков наилучший способ сделать это без необходимости трясти основной вид?

1 Ответ

1 голос
/ 17 декабря 2011

Один простой вариант:

class CachingView extends View {

    protected $cacheStorage;

    public function render($template, $path = null) {
        if (! $this->getCacheStorage()->has($template)) {
           $this->getCacheStorage()->store(parent::render($template, $path));
        }

        return $this->getCacheStorage()->get($template);
    }

    public function getCacheStorage() {
        if (empty($this->cacheStorage)) {
            $this->cacheStorage = new ViewCacheStorage();
        }
        return $this->cacheStorage;
    }
}

А затем все ваши другие представления расширяются от CachingView.

...