コード例 #1
0
 /**
  * Получить список избранного по списку айдишников, но используя единый кеш
  *
  * @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;
 }
コード例 #2
0
ファイル: Favourite.class.php プロジェクト: hard990/altocms
 /**
  * Получить список избранного по списку айдишников, но используя единый кеш
  *
  * @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;
 }