• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP func_build_cache_keys函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中func_build_cache_keys函数的典型用法代码示例。如果您正苦于以下问题:PHP func_build_cache_keys函数的具体用法?PHP func_build_cache_keys怎么用?PHP func_build_cache_keys使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了func_build_cache_keys函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: GetFavouritesByArray

 /**
  * Получить список избранного по списку айдишников
  *
  * @param  array  $aTargetId	Список ID владельцев
  * @param  string $sTargetType	Тип владельца
  * @param  int $sUserId	ID пользователя
  * @return array
  */
 public function GetFavouritesByArray($aTargetId, $sTargetType, $sUserId)
 {
     if (!$aTargetId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetFavouritesByArraySolid($aTargetId, $sTargetType, $sUserId);
     }
     if (!is_array($aTargetId)) {
         $aTargetId = array($aTargetId);
     }
     $aTargetId = array_unique($aTargetId);
     $aFavourite = array();
     $aIdNotNeedQuery = array();
     /**
      * Делаем мульти-запрос к кешу
      */
     $aCacheKeys = func_build_cache_keys($aTargetId, "favourite_{$sTargetType}_", '_' . $sUserId);
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         /**
          * проверяем что досталось из кеша
          */
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aFavourite[$data[$sKey]->getTargetId()] = $data[$sKey];
                 } else {
                     $aIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     /**
      * Смотрим чего не было в кеше и делаем запрос в БД
      */
     $aIdNeedQuery = array_diff($aTargetId, array_keys($aFavourite));
     $aIdNeedQuery = array_diff($aIdNeedQuery, $aIdNotNeedQuery);
     $aIdNeedStore = $aIdNeedQuery;
     if ($data = $this->oMapper->GetFavouritesByArray($aIdNeedQuery, $sTargetType, $sUserId)) {
         foreach ($data as $oFavourite) {
             /**
              * Добавляем к результату и сохраняем в кеш
              */
             $aFavourite[$oFavourite->getTargetId()] = $oFavourite;
             $this->Cache_Set($oFavourite, "favourite_{$oFavourite->getTargetType()}_{$oFavourite->getTargetId()}_{$sUserId}", array(), 60 * 60 * 24 * 7);
             $aIdNeedStore = array_diff($aIdNeedStore, array($oFavourite->getTargetId()));
         }
     }
     /**
      * Сохраняем в кеш запросы не вернувшие результата
      */
     foreach ($aIdNeedStore as $sId) {
         $this->Cache_Set(null, "favourite_{$sTargetType}_{$sId}_{$sUserId}", array(), 60 * 60 * 24 * 7);
     }
     /**
      * Сортируем результат согласно входящему массиву
      */
     $aFavourite = func_array_sort_by_keys($aFavourite, $aTargetId);
     return $aFavourite;
 }
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:68,代码来源:Favourite.class.php


示例2: getTopicsIdByBounds

 public function getTopicsIdByBounds($iTopLeftX, $iTopLeftY, $iBotRightX, $iBotRightY)
 {
     $iMinX = floor(min($iTopLeftX, $iBotRightX));
     $iMaxX = ceil(max($iTopLeftX, $iBotRightX));
     $iMinY = floor(min($iTopLeftY, $iBotRightY));
     $iMaxY = ceil(max($iTopLeftY, $iBotRightY));
     if ($iMinX == $iMaxX) {
         $iMaxX = $iMinX + 1;
     }
     if ($iMinY == $iMaxY) {
         $iMaxY = $iMinY + 1;
     }
     $aCoordinatesKeys = array();
     for ($x = $iMinX; $x < $iMaxX; $x++) {
         for ($y = $iMinY; $y < $iMaxY; $y++) {
             $aCoordinatesKeys[] = "{$x}_{$y}";
         }
     }
     $aRectNotNeedQuery = array();
     $aCacheKeys = func_build_cache_keys($aCoordinatesKeys, 'topic_coordinate_rect_');
     $aTopics = array();
     foreach ($aCacheKeys as $sValue => $sKey) {
         if (false !== ($data = $this->Cache_Get($sKey))) {
             $aTopics = array_merge($aTopics, $data);
             $aRectNotNeedQuery[$sValue] = $sValue;
         }
     }
     $aRectNeedToQuery = array();
     for ($x = $iMinX; $x < $iMaxX; $x++) {
         for ($y = $iMinY; $y < $iMaxY; $y++) {
             if (!isset($aRectNotNeedQuery["{$x}_{$y}"])) {
                 $aRectNeedToQuery[] = array('x' => $x, 'y' => $y);
             }
         }
     }
     if ($aRectNeedToQuery) {
         $aTopicZones = $this->oMapperTopic->getTopicsIdZones($aRectNeedToQuery);
         foreach ($aTopicZones as $sKey => $aTopicsZone) {
             $aTopics = array_merge($aTopics, $aTopicsZone);
             $this->Cache_Set($aTopicsZone, "topic_coordinate_rect_{$sKey}", array('topic_update', 'topic_new'), 60 * 60 * 24 * 1);
         }
     }
     return $aTopics;
 }
开发者ID:Roma386,项目名称:geopost,代码行数:44,代码来源:Topic.class.php


示例3: GetQuestionByArrayId

 public function GetQuestionByArrayId($aQuestionId, $aOrder = null)
 {
     if (!$aQuestionId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetQuestionByArrayIdSolid($aQuestionId, $aOrder);
     }
     if (!is_array($aQuestionId)) {
         $aQuestionId = array($aQuestionId);
     }
     $aQuestionId = array_unique($aQuestionId);
     $aQuestion = $aQuestionIdNotNeedQuery = array();
     $aCacheKeys = func_build_cache_keys($aQuestionId, 'receptiondesk_question_');
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aQuestion[$data[$sKey]->getId()] = $data[$sKey];
                 } else {
                     $aQuestionIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     $aQuestionIdNeedQuery = array_diff($aQuestionId, array_keys($aQuestion));
     $aQuestionIdNeedQuery = array_diff($aQuestionIdNeedQuery, $aQuestionIdNotNeedQuery);
     $aQuestionIdNeedStore = $aQuestionIdNeedQuery;
     if ($data = $this->oMapper->GetQuestionByArrayId($aQuestionIdNeedQuery)) {
         foreach ($data as $oQuestion) {
             $aQuestion[$oQuestion->getId()] = $oQuestion;
             $this->Cache_Set($oQuestion, "receptiondesk_question_{$oQuestion->getId()}", array(), 60 * 60 * 24 * 4);
             $aQuestionIdNeedStore = array_diff($aQuestionIdNeedStore, array($oQuestion->getId()));
         }
     }
     foreach ($aQuestionIdNeedStore as $sId) {
         $this->Cache_Set(null, "receptiondesk_question_{$sId}", array(), 60 * 60 * 24 * 4);
     }
     $aQuestion = func_array_sort_by_keys($aQuestion, $aQuestionId);
     return $aQuestion;
 }
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:41,代码来源:Question.class.php


示例4: GetFriendsByArray

 /**
  * Получить список отношений друзей
  *
  * @param  array $aUserId
  * @return array
  */
 public function GetFriendsByArray($aUserId, $sUserId)
 {
     if (!$aUserId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetFriendsByArraySolid($aUserId, $sUserId);
     }
     if (!is_array($aUserId)) {
         $aUserId = array($aUserId);
     }
     $aUserId = array_unique($aUserId);
     $aFriends = array();
     $aUserIdNotNeedQuery = array();
     /**
      * Делаем мульти-запрос к кешу
      */
     $aCacheKeys = func_build_cache_keys($aUserId, 'user_friend_', '_' . $sUserId);
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         /**
          * проверяем что досталось из кеша
          */
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aFriends[$data[$sKey]->getFriendId()] = $data[$sKey];
                 } else {
                     $aUserIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     /**
      * Смотрим каких френдов не было в кеше и делаем запрос в БД
      */
     $aUserIdNeedQuery = array_diff($aUserId, array_keys($aFriends));
     $aUserIdNeedQuery = array_diff($aUserIdNeedQuery, $aUserIdNotNeedQuery);
     $aUserIdNeedStore = $aUserIdNeedQuery;
     if ($data = $this->oMapper->GetFriendsByArrayId($aUserIdNeedQuery, $sUserId)) {
         foreach ($data as $oFriend) {
             /**
              * Добавляем к результату и сохраняем в кеш
              */
             $aFriends[$oFriend->getFriendId($sUserId)] = $oFriend;
             /**
              * Тут кеш нужно будет продумать как-то по другому.
              * Пока не трогаю, ибо этот код все равно не выполняется.
              * by Kachaev
              */
             $this->Cache_Set($oFriend, "user_friend_{$oFriend->getFriendId()}_{$oFriend->getUserId()}", array(), 60 * 60 * 24 * 4);
             $aUserIdNeedStore = array_diff($aUserIdNeedStore, array($oFriend->getFriendId()));
         }
     }
     /**
      * Сохраняем в кеш запросы не вернувшие результата
      */
     foreach ($aUserIdNeedStore as $sId) {
         $this->Cache_Set(null, "user_friend_{$sId}_{$sUserId}", array(), 60 * 60 * 24 * 4);
     }
     /**
      * Сортируем результат согласно входящему массиву
      */
     $aFriends = func_array_sort_by_keys($aFriends, $aUserId);
     return $aFriends;
 }
开发者ID:lifecom,项目名称:Huddlebuddle,代码行数:71,代码来源:User.class.php


示例5: GetTopicsReadByArray

 /**
  * Получить список просмотром/чтения топиков по списку айдишников
  *
  * @param array $aTopicId Список ID топиков
  * @param int $sUserId ID пользователя
  * @return array
  */
 public function GetTopicsReadByArray($aTopicId, $sUserId)
 {
     if (!$aTopicId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetTopicsReadByArraySolid($aTopicId, $sUserId);
     }
     if (!is_array($aTopicId)) {
         $aTopicId = array($aTopicId);
     }
     $aTopicId = array_unique($aTopicId);
     $aTopicsRead = array();
     $aTopicIdNotNeedQuery = array();
     /**
      * Делаем мульти-запрос к кешу
      */
     $aCacheKeys = func_build_cache_keys($aTopicId, 'topic_read_', '_' . $sUserId);
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         /**
          * проверяем что досталось из кеша
          */
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aTopicsRead[$data[$sKey]->getTopicId()] = $data[$sKey];
                 } else {
                     $aTopicIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     /**
      * Смотрим каких топиков не было в кеше и делаем запрос в БД
      */
     $aTopicIdNeedQuery = array_diff($aTopicId, array_keys($aTopicsRead));
     $aTopicIdNeedQuery = array_diff($aTopicIdNeedQuery, $aTopicIdNotNeedQuery);
     $aTopicIdNeedStore = $aTopicIdNeedQuery;
     if ($data = $this->oMapperTopic->GetTopicsReadByArray($aTopicIdNeedQuery, $sUserId)) {
         foreach ($data as $oTopicRead) {
             /**
              * Добавляем к результату и сохраняем в кеш
              */
             $aTopicsRead[$oTopicRead->getTopicId()] = $oTopicRead;
             $this->Cache_Set($oTopicRead, "topic_read_{$oTopicRead->getTopicId()}_{$oTopicRead->getUserId()}", array(), 60 * 60 * 24 * 4);
             $aTopicIdNeedStore = array_diff($aTopicIdNeedStore, array($oTopicRead->getTopicId()));
         }
     }
     /**
      * Сохраняем в кеш запросы не вернувшие результата
      */
     foreach ($aTopicIdNeedStore as $sId) {
         $this->Cache_Set(null, "topic_read_{$sId}_{$sUserId}", array(), 60 * 60 * 24 * 4);
     }
     /**
      * Сортируем результат согласно входящему массиву
      */
     $aTopicsRead = func_array_sort_by_keys($aTopicsRead, $aTopicId);
     return $aTopicsRead;
 }
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:67,代码来源:Topic.class.php


示例6: GetCommentsByArrayId

 /**
  * Список комментов по ID
  *
  * @param array $aCommentId Список ID комментариев
  * @return array
  */
 public function GetCommentsByArrayId($aCommentId)
 {
     if (!$aCommentId) {
         return array();
     }
     if (Config::Get('sys.cache.solid')) {
         return $this->GetCommentsByArrayIdSolid($aCommentId);
     }
     if (!is_array($aCommentId)) {
         $aCommentId = array($aCommentId);
     }
     $aCommentId = array_unique($aCommentId);
     $aComments = array();
     $aCommentIdNotNeedQuery = array();
     /**
      * Делаем мульти-запрос к кешу
      */
     $aCacheKeys = func_build_cache_keys($aCommentId, 'comment_');
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         /**
          * Проверяем что досталось из кеша
          */
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aComments[$data[$sKey]->getId()] = $data[$sKey];
                 } else {
                     $aCommentIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     /**
      * Смотрим каких комментов не было в кеше и делаем запрос в БД
      */
     $aCommentIdNeedQuery = array_diff($aCommentId, array_keys($aComments));
     $aCommentIdNeedQuery = array_diff($aCommentIdNeedQuery, $aCommentIdNotNeedQuery);
     $aCommentIdNeedStore = $aCommentIdNeedQuery;
     if ($data = $this->oMapper->GetCommentsByArrayId($aCommentIdNeedQuery)) {
         foreach ($data as $oComment) {
             /**
              * Добавляем к результату и сохраняем в кеш
              */
             $aComments[$oComment->getId()] = $oComment;
             $this->Cache_Set($oComment, "comment_{$oComment->getId()}", array(), 60 * 60 * 24 * 4);
             $aCommentIdNeedStore = array_diff($aCommentIdNeedStore, array($oComment->getId()));
         }
     }
     /**
      * Сохраняем в кеш запросы не вернувшие результата
      */
     foreach ($aCommentIdNeedStore as $sId) {
         $this->Cache_Set(null, "comment_{$sId}", array(), 60 * 60 * 24 * 4);
     }
     /**
      * Сортируем результат согласно входящему массиву
      */
     $aComments = func_array_sort_by_keys($aComments, $aCommentId);
     return $aComments;
 }
开发者ID:cbrspc,项目名称:LIVESTREET-1-DISTRIB,代码行数:66,代码来源:Comment.class.php


示例7: GetTalkUsersByArray

 /**
  * Получить список отношений разговор-юзер по списку айдишников
  *
  * @param array $aTalkId	Список ID сообщений
  * @param int $sUserId	ID пользователя
  * @return array
  */
 public function GetTalkUsersByArray($aTalkId, $sUserId)
 {
     if (!is_array($aTalkId)) {
         $aTalkId = array($aTalkId);
     }
     $aTalkId = array_unique($aTalkId);
     $aTalkUsers = array();
     $aTalkIdNotNeedQuery = array();
     /**
      * Делаем мульти-запрос к кешу
      */
     $aCacheKeys = func_build_cache_keys($aTalkId, 'talk_user_', '_' . $sUserId);
     if (false !== ($data = $this->Cache_Get($aCacheKeys))) {
         /**
          * проверяем что досталось из кеша
          */
         foreach ($aCacheKeys as $sValue => $sKey) {
             if (array_key_exists($sKey, $data)) {
                 if ($data[$sKey]) {
                     $aTalkUsers[$data[$sKey]->getTalkId()] = $data[$sKey];
                 } else {
                     $aTalkIdNotNeedQuery[] = $sValue;
                 }
             }
         }
     }
     /**
      * Смотрим чего не было в кеше и делаем запрос в БД
      */
     $aTalkIdNeedQuery = array_diff($aTalkId, array_keys($aTalkUsers));
     $aTalkIdNeedQuery = array_diff($aTalkIdNeedQuery, $aTalkIdNotNeedQuery);
     $aTalkIdNeedStore = $aTalkIdNeedQuery;
     if ($data = $this->oMapper->GetTalkUserByArray($aTalkIdNeedQuery, $sUserId)) {
         foreach ($data as $oTalkUser) {
             /**
              * Добавляем к результату и сохраняем в кеш
              */
             $aTalkUsers[$oTalkUser->getTalkId()] = $oTalkUser;
             $this->Cache_Set($oTalkUser, "talk_user_{$oTalkUser->getTalkId()}_{$oTalkUser->getUserId()}", array("update_talk_user_{$oTalkUser->getTalkId()}"), 60 * 60 * 24 * 4);
             $aTalkIdNeedStore = array_diff($aTalkIdNeedStore, array($oTalkUser->getTalkId()));
         }
     }
     /**
      * Сохраняем в кеш запросы не вернувшие результата
      */
     foreach ($aTalkIdNeedStore as $sId) {
         $this->Cache_Set(null, "talk_user_{$sId}_{$sUserId}", array("update_talk_user_{$sId}"), 60 * 60 * 24 * 4);
     }
     /**
      * Сортируем результат согласно входящему массиву
      */
     $aTalkUsers = func_array_sort_by_keys($aTalkUsers, $aTalkId);
     return $aTalkUsers;
 }
开发者ID:lunavod,项目名称:bunker_stable,代码行数:61,代码来源:Talk.class.php



注:本文中的func_build_cache_keys函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP func_camelize函数代码示例发布时间:2022-05-15
下一篇:
PHP func_array_sort_by_keys函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap