Кэширование модели родительского представления с дочерними моделями представления в Zend Framework 2

Я пытаюсь кэшировать модель родительского представления, имеющую 3 дочерних модели представления в Zend Framework 2. Каждая модель представления прикреплена с различными файлами шаблона. Когда я пытался кэшировать родительскую модель представления, она кэшировала только свой собственный шаблон, но не включала содержимое своих дочерних элементов.

В приведенном ниже коде; Я пытался кэшировать каждый метод действия, возвращенный viewmodel из module.php слушателем события как
$eventManager->attach(MvcEvent::EVENT_RENDER, array($this,'saveActionCache'), 0);

     public function saveActionCache(MvcEvent $event)
{
$match = $event->getRouteMatch();
if(!$match) {
return;
}

if($match->getParam('actioncache')) {
$viewManager = $event->getApplication()->getServiceManager()->get('viewmanager');

$result    = $event->getResult();
if($result instanceof ViewModel) {
$cache = $event->getApplication()->getServiceManager()->get('text-cache');
// Warning: The line below needs improvement. It will work for all PHP templates, but have
//          to be made more flexible if you plan to use other template systems.
$renderer = $viewManager->getRenderer();

$content = $renderer->render($result);
// here we can see the the $content is the only content of the
// parent viewmodel template and it is not including its child
// viewmodel contents
$cacheKey = $this->actionCacheKey($match);
$cache->setItem($cacheKey, $content);
$tags = $match->getParam('tags');
if (is_array($tags)) {
$cache->setTags($cacheKey, $tags);
}
}
}
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]