/** * Получить список избранного по списку айдишников, но используя единый кеш * * @param array $aTargetId Список ID владельцев * @param string $sTargetType Тип владельца * @param int $sUserId ID пользователя * @return array */ public function GetFavouritesByArraySolid($aTargetId, $sTargetType, $sUserId) { if (!is_array($aTargetId)) { $aTargetId = array($aTargetId); } $aTargetId = array_unique($aTargetId); $aFavourites = array(); $s = join(',', $aTargetId); if (false === ($data = $this->Cache_Get("favourite_{$sTargetType}_{$sUserId}_id_{$s}"))) { $data = $this->oMapper->GetFavouritesByArray($aTargetId, $sTargetType, $sUserId); foreach ($data as $oFavourite) { $aFavourites[$oFavourite->getTargetId()] = $oFavourite; } $this->Cache_Set($aFavourites, "favourite_{$sTargetType}_{$sUserId}_id_{$s}", array("favourite_{$sTargetType}_change_user_{$sUserId}"), 60 * 60 * 24 * 1); return $aFavourites; } return $data; }
/** * Получить список избранного по списку айдишников, но используя единый кеш * * @param array $aTargetId Список ID владельцев * @param string $sTargetType Тип владельца * @param int $nUserId ID пользователя * * @return array */ public function GetFavouritesByArraySolid($aTargetId, $sTargetType, $nUserId) { if (!is_array($aTargetId)) { $aTargetId = array($aTargetId); } $aTargetId = array_unique($aTargetId); $aFavourites = array(); $sCacheKey = "favourite_{$sTargetType}_{$nUserId}_id_" . join(',', $aTargetId); if (false === ($data = E::ModuleCache()->Get($sCacheKey))) { $data = $this->oMapper->GetFavouritesByArray($aTargetId, $sTargetType, $nUserId); foreach ($data as $oFavourite) { $aFavourites[$oFavourite->getTargetId()] = $oFavourite; } E::ModuleCache()->Set($aFavourites, $sCacheKey, array("favourite_{$sTargetType}_change_user_{$nUserId}"), 'P1D'); return $aFavourites; } return $data; }