/** * Get result from cache or execute database query * * @param array $config query and cache parameters * @param ServiceLocatorInterface $sl * @return multitype:NULL */ protected function queryDbCacheResult($config, $sl) { $result = array(); $cache = $sl->get(static::CONTENTINUM_CACHE); $key = $config['cache']; if (!($result = $cache->getItem($key))) { $worker = new Worker($sl->get($config['entitymanager'])); $worker->setEntity($config['entity']); $entries = $worker->getStorage()->getRepository($worker->getEntityName())->findBy(array('publish' => 'yes'), array('itemRang' => 'ASC')); $i = 1; foreach ($entries as $entry) { $metas = array(); $metas['rel'] = $entry->metaRel ? $entry->metaRel : false; $metas['type'] = $entry->metaType ? $entry->metaType : false; $metas['title'] = $entry->metaTitle ? $entry->metaTitle : false; $metas['content'] = $entry->metaContent ? $entry->metaContent : false; if (1 !== $entry->webMedias->id) { $metas['href'] = $entry->webMedias->mediaLink; $metas['sizes'] = $entry->webMedias->mediaDimensions; } else { $metas['href'] = $entry->metaLink; } $result[$entry->webPages->id][] = $metas; $i++; } if (isset($config['savecache']) && true === $config['savecache']) { $cache->setItem($key, $result); } } if (null === $result) { $result = array(); } return $result; }
/** * Get result from cache or execute database query * * @param array $config query and cache parameters * @param ServiceLocatorInterface $sl * @return multitype:NULL */ protected function queryDbCacheResult($config, $sl) { $result = array(); $cache = $sl->get(static::CONTENTINUM_CACHE); $key = $config['cache']; if (!($result = $cache->getItem($key))) { $worker = new Worker($sl->get($config['entitymanager'])); $worker->setEntity($config['entity']); $sortby = $config['sortby']; $entries = $worker->getStorage()->getRepository($worker->getEntityName())->findAll(); foreach ($entries as $entry) { $result[$entry->{$sortby}] = $entry->toArray(); } $this->saveCacheItems($key, $result, $cache, $config); } return $result; }