コード例 #1
0
 /**
  * Returns the stored url if it was already generated, false otherwise
  *
  * @param string $key 
  * @return mixed
  */
 public static function get($url, $full)
 {
     $keyUrl = $url;
     if (is_array($keyUrl)) {
         $keyUrl += self::$extras;
         # prevent different hashs on different orders
         ksort($keyUrl, SORT_STRING);
         # prevent different hashs on different types (int/string/bool)
         foreach ($keyUrl as $key => $val) {
             $keyUrl[$key] = (string) $val;
         }
     }
     self::$key = md5(serialize($keyUrl) . $full);
     if (Configure::read('UrlCache.pageFiles')) {
         self::$type = 'cachePage';
         if (is_array($keyUrl)) {
             $res = array_diff_key($keyUrl, self::$extras);
             if (empty($res)) {
                 self::$type = 'cache';
             }
         }
         if (self::$type === 'cachePage') {
             return isset(self::$cachePage[self::$key]) ? self::$cachePage[self::$key] : false;
         }
     }
     return isset(self::$cache[self::$key]) ? self::$cache[self::$key] : false;
 }
コード例 #2
0
 /**
  * Returns the stored url if it was already generated, false otherwise
  *
  * @param string $key
  * @return mixed
  */
 public static function get($url, $full)
 {
     $keyUrl = $url;
     if (is_array($keyUrl)) {
         $keyUrl += self::$extras;
         # prevent different hashs on different orders
         ksort($keyUrl, SORT_STRING);
         # prevent different hashs on different types (int/string/bool)
         foreach ($keyUrl as $key => $val) {
             $keyUrl[$key] = is_array($val) ? Hash::flatten($val) : (string) $val;
         }
     }
     self::$key = md5(serialize($keyUrl) . $full);
     if (Configure::read('UrlCache.pageFiles')) {
         self::$type = 'cachePage';
         if (is_array($keyUrl)) {
             $res = array_diff_key($keyUrl, self::$extras);
             if (empty($res)) {
                 self::$type = 'cache';
             }
         }
         if (self::$type === 'cachePage') {
             if (isset(self::$cachePage[self::$key])) {
                 if (Configure::read('debug')) {
                     Configure::write('UrlCacheDebug.usedPage', (int) Configure::read('UrlCacheDebug.usedPage') + 1);
                 }
                 return self::$cachePage[self::$key];
             }
             if (Configure::read('debug')) {
                 $missed = (array) Configure::read('UrlCacheDebug.missedPage');
                 $missed[] = $url;
                 Configure::write('UrlCacheDebug.missedPage', $missed);
                 Configure::write('UrlCacheDebug.missedCountPage', (int) Configure::read('UrlCacheDebug.missedCountPage') + 1);
             }
             return false;
         }
     }
     if (isset(self::$cache[self::$key])) {
         if (Configure::read('debug')) {
             Configure::write('UrlCacheDebug.used', (int) Configure::read('UrlCacheDebug.used') + 1);
         }
         return self::$cache[self::$key];
     }
     if (Configure::read('debug')) {
         $missed = (array) Configure::read('UrlCacheDebug.missed');
         $missed[] = $url;
         Configure::write('UrlCacheDebug.missed', $missed);
         Configure::write('UrlCacheDebug.missedCount', (int) Configure::read('UrlCacheDebug.missedCount') + 1);
     }
     return false;
 }