本文整理汇总了PHP中CacheManager::setItem方法的典型用法代码示例。如果您正苦于以下问题:PHP CacheManager::setItem方法的具体用法?PHP CacheManager::setItem怎么用?PHP CacheManager::setItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CacheManager
的用法示例。
在下文中一共展示了CacheManager::setItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __invoke
/**
* List of current organisations.
*
* @return array
*/
public function __invoke()
{
$language = $this->translator->getLocale();
$cacheName = 'organisations_list_' . $language;
$list = $this->cache->getItem($cacheName);
if (!$list) {
$emptyResults = $this->resultsManager->get('EmptySet');
$sectors = ['arc', 'lib', 'mus'];
try {
foreach ($sectors as $sector) {
$list[$sector] = [];
$results = $this->resultsManager->get('Solr');
$params = $results->getParams();
$params->addFacet('building', 'Building', false);
$params->addFilter('sector_str_mv:0/' . $sector . '/');
$params->setLimit(0);
$params->setFacetPrefix('0');
$params->setFacetLimit('-1');
$collection = $results->getFacetList()['building']['list'];
foreach ($collection as $item) {
$link = $emptyResults->getUrlQuery()->addFacet('building', $item['value']);
$displayText = $item['displayText'];
if ($displayText == $item['value']) {
$displayText = $this->facetHelper->formatDisplayText($displayText)->getDisplayString();
}
$organisationInfoId = $this->organisationInfo->getOrganisationInfoId($item['value']);
$list[$sector][] = ['name' => $displayText, 'link' => $link, 'organisation' => $organisationInfoId];
}
usort($list[$sector], function ($a, $b) {
return strtolower($a['name']) > strtolower($b['name']);
});
}
$this->cache->setItem($cacheName, $list);
} catch (\VuFindSearch\Backend\Exception\BackendException $e) {
foreach ($sectors as $sector) {
$list[$sector] = [];
}
$this->logError('Error creating organisations list: ' . $e->getMessage());
}
}
return $list;
}