Вход Регистрация
Файл: contao-3.5.8/system/modules/core/library/Contao/Cache.php
Строк: 119
<?php

/**
 * Contao Open Source CMS
 *
 * Copyright (c) 2005-2016 Leo Feyer
 *
 * @license LGPL-3.0+
 */

namespace Contao;


/**
 * A static class to store non-persistent data
 *
 * The class functions as a global cache container where you can store data
 * that is reused by the application. The cache content is not persisted, so
 * once the process is completed, the data is gone.
 *
 * Usage:
 *
 *     public function getResult()
 *     {
 *         if (!Cache::has('result'))
 *         {
 *             Cache::set('result') = $this->complexMethod();
 *         }
 *         return Cache::get('result');
 *     }
 *
 * @author Leo Feyer <https://github.com/leofeyer>
 */
class Cache
{

    
/**
     * Object instance (Singleton)
     * @var Cache
     */
    
protected static $objInstance;

    
/**
     * The cache data
     * @var array
     */
    
protected static $arrData = array();


    
/**
     * Check whether a key is set
     *
     * @param string $strKey The cache key
     *
     * @return boolean True if the key is set
     */
    
public static function has($strKey)
    {
        return isset(static::
$arrData[$strKey]);
    }


    
/**
     * Return a cache entry
     *
     * @param string $strKey The cache key
     *
     * @return mixed The cached data
     */
    
public static function get($strKey)
    {
        return static::
$arrData[$strKey];
    }


    
/**
     * Add a cache entry
     *
     * @param string $strKey   The cache key
     * @param mixed  $varValue The data to be cached
     */
    
public static function set($strKey$varValue)
    {
        static::
$arrData[$strKey] = $varValue;
    }


    
/**
     * Remove a cache entry
     *
     * @param string $strKey The cache key
     */
    
public static function remove($strKey)
    {
        unset(static::
$arrData[$strKey]);
    }


    
/**
     * Prevent direct instantiation (Singleton)
     *
     * @deprecated Cache is now a static class
     */
    
protected function __construct() {}


    
/**
     * Prevent cloning of the object (Singleton)
     *
     * @deprecated Cache is now a static class
     */
    
final public function __clone() {}


    
/**
     * Check whether a key is set
     *
     * @param string $strKey The cache key
     *
     * @return boolean True if the key is set
     *
     * @deprecated Use Cache::has() instead
     */
    
public function __isset($strKey)
    {
        return static::
has($strKey);
    }


    
/**
     * Return a cache entry
     *
     * @param string $strKey The cache key
     *
     * @return mixed|null The cached data
     *
     * @deprecated Use Cache::get() instead
     */
    
public function __get($strKey)
    {
        if (static::
has($strKey))
        {
            return static::
get($strKey);
        }

        return 
null;
    }


    
/**
     * Add a cache entry
     *
     * @param string $strKey   The cache key
     * @param mixed  $varValue The data to be stored
     *
     * @deprecated Use Cache::set() instead
     */
    
public function __set($strKey$varValue)
    {
        static::
set($strKey$varValue);
    }


    
/**
     * Remove a cache entry
     *
     * @param string $strKey The cache key
     *
     * @deprecated Use Cache::remove() instead
     */
    
public function __unset($strKey)
    {
        static::
remove($strKey);
    }


    
/**
     * Instantiate the cache object (Factory)
     *
     * @return Cache The object instance
     *
     * @deprecated Cache is now a static class
     */
    
public static function getInstance()
    {
        if (static::
$objInstance === null)
        {
            static::
$objInstance = new static();
        }

        return static::
$objInstance;
    }
}
Онлайн: 1
Реклама