2013-05-06 1 views
1

У меня есть мой кеш-сайт с использованием кеширования полной страницы. Поэтому для каждой страницы создается html-файл.Возможно кэширование полной страницы с APC? (CakePHP)

Как я использую CakePHP, я могу определить, что кеширование APC будет использоваться вместо кэширования файлов. Однако, если это сделано, html-файлы все еще создаются (APC установлен правильно).

Итак, вопрос: существует ли какая-либо логика использования APC с полным кэшированием страниц? Предоставляет ли она какие-либо выгоды? Можно ли как-то поместить кэшированный html-файл в RAM и прочитать его там, когда это необходимо?

P.S. Я не говорю о функциональности кэширования кода APC. Просто кэширование данных.

ответ

1

Да, вы можете кэшировать весь свой файл вида HTML в кеше с помощью механизма кеша APC в CakePHP. Cake's CacheHelper сделает эту работу за вас. Предположим, у вас есть PostsController, и вы хотите кэшировать все файлы своего вида, связанные с этим контроллером. В этом случае, прежде всего, вы должны определить следующий код в своем контроллере.

class PostsController extends AppController { 
     public $helpers = array('Cache'); 
    } 

И в вашем bootstrap.php файл, который вы должны добавить CacheDispatcher.

Configure::write('Dispatcher.filters', array(
     'CacheDispatcher' 
     ) 
    ); 

И теперь снова в вашем PostsController вы должны сказать о файлах кэша.

public $cacheAction = array(
     'view' => 36000, 
     'index' => 48000 
    ); 

Это будет кэшировать вида действия 10 часов, а индекс практической деятельности 13 часов.

С этого момента я думаю, что вы можете обслуживать весь ваш файл кэшированного HTML-файла посетителям, не нажимая на PHP или Cake на своем сервере. Благодарю.

+0

На самом деле CakePHP не кэширует представления в APC. Он кэширует представления как файлы в 'app/tmp/cache/views /'. APC используется только для кэширования моделей, данных ... [См., Как работает CacheDispacher] (https://github.com/cakephp/cakephp/blob/master/lib/Cake/Routing/Filter/CacheDispatcher.php#L60). – iDev247