A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.yiiframework.com/doc/api/2.0/yii-caching-filecache below:

FileCache, yii\caching\FileCache | API Documentation for Yii 2.0

FileCache implements a cache component using files.

For each data value being cached, FileCache will store it in a separate file. The cache files are placed under $cachePath. FileCache will perform garbage collection automatically to remove expired cache files.

Please refer to yii\caching\Cache for common cache operations that are supported by FileCache.

For more details and usage information on Cache, see the guide article on caching.

Hide inherited properties

Cache file suffix. Defaults to '.bin'.

The directory to store cache files. You may use path alias here. If not set, it will use the "cache" subdirectory under the application runtime path.

The permission to be set for newly created directories. This value will be used by PHP chmod() function. No umask will be applied. Defaults to 0775, meaning the directory is read-writable by owner and group, but read-only for other users.

The level of sub-directories to store cache files. Defaults to 1. If the system has huge number of cache files (e.g. one million), you may use a bigger value (usually no bigger than 3). Using sub-directories is mainly to ensure the file system is not over burdened with a single directory having too many files.

The permission to be set for newly created cache files. This value will be used by PHP chmod() function. No umask will be applied. If not set, the permission will be determined by the current environment.

The probability (parts per million) that garbage collection (GC) should be performed when storing a piece of data in the cache. Defaults to 10, meaning 0.001% chance. This number should be between 0 and 1000000. A value 0 means no GC will be performed at all.

A string prefixed to every cache key. This is needed when you store cache data under the same $cachePath for different applications to avoid conflict.

To ensure interoperability, only alphanumeric characters should be used.

Hide inherited methods

Defined in: yii\base\Component::__call()

Calls the named method which is not a class method.

This method will check if any attached behavior has the named method and will execute it if available.

Do not call this method directly as it is a PHP magic method that will be implicitly called when an unknown method is being invoked.

Source code

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            

Defined in: yii\base\Component::__clone()

This method is called after the object is created by cloning an existing one.

It removes all behaviors because they are attached to the old object.

Source code

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            

Defined in: yii\base\BaseObject::__construct()

Constructor.

The default implementation does two things:

If this method is overridden in a child class, it is recommended that

public void __construct ( $config = [] ) $config array

Name-value pairs that will be used to initialize the object properties

Source code

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            

Defined in: yii\base\Component::__get()

Returns the value of a component property.

This method will check in the following order and act accordingly:

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $value = $component->property;.

See also __set().

Source code

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        
        return $this->$getter();
    }
    
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            

Defined in: yii\base\Component::__isset()

Checks if a property is set, i.e. defined and not null.

This method will check in the following order and act accordingly:

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing isset($component->property).

See also https://www.php.net/manual/en/function.isset.php.

Source code

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            

Defined in: yii\base\Component::__set()

Sets the value of a component property.

This method will check in the following order and act accordingly:

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing $component->property = $value;.

See also __get().

Source code

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        
        $name = trim(substr($name, 3));
        if ($value instanceof Behavior) {
            $this->attachBehavior($name, $value);
        } elseif ($value instanceof \Closure) {
            $this->attachBehavior($name, call_user_func($value));
        } elseif (isset($value['__class']) && is_subclass_of($value['__class'], Behavior::class)) {
            $this->attachBehavior($name, Yii::createObject($value));
        } elseif (!isset($value['__class']) && isset($value['class']) && is_subclass_of($value['class'], Behavior::class)) {
            $this->attachBehavior($name, Yii::createObject($value));
        } elseif (is_string($value) && is_subclass_of($value, Behavior::class, true)) {
            $this->attachBehavior($name, Yii::createObject($value));
        } else {
            throw new InvalidConfigException('Class is not of type ' . Behavior::class . ' or its subclasses');
        }
        return;
    }
    
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            

Defined in: yii\base\Component::__unset()

Sets a component property to be null.

This method will check in the following order and act accordingly:

Do not call this method directly as it is a PHP magic method that will be implicitly called when executing unset($component->property).

See also https://www.php.net/manual/en/function.unset.php.

Source code

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            

Defined in: yii\caching\Cache::add()

Stores a value identified by a key into cache if the cache does not contain this key.

Nothing will be done if the cache already contains the key.

public boolean add ( $key, $value, $duration 0, $dependency null ) $key mixed

A key identifying the value to be cached. This can be a simple string or a complex data structure consisting of factors representing the key.

$value mixed

The value to be cached

$duration integer

The number of seconds in which the cached value will expire. 0 means never expire.

$dependency yii\caching\Dependency|null

Dependency of the cached item. If the dependency changes, the corresponding value in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return boolean

Whether the value is successfully stored into cache

Source code

                public function add($key, $value, $duration = 0, $dependency = null)
{
    if ($dependency !== null && $this->serializer !== false) {
        $dependency->evaluateDependency($this);
    }
    if ($this->serializer === null) {
        $value = serialize([$value, $dependency]);
    } elseif ($this->serializer !== false) {
        $value = call_user_func($this->serializer[0], [$value, $dependency]);
    }
    $key = $this->buildKey($key);
    return $this->addValue($key, $value, $duration);
}

            

Stores a value identified by a key into cache if the cache does not contain this key.

This is the implementation of the method declared in the parent class.

protected boolean addValue ( $key, $value, $duration ) $key string

The key identifying the value to be cached

$value string

The value to be cached. Other types (if you have disabled $serializer) unable to get is correct in getValue().

$duration integer

The number of seconds in which the cached value will expire. 0 means never expire.

return boolean

True if the value is successfully stored into cache, false otherwise

Source code

                protected function addValue($key, $value, $duration)
{
    $cacheFile = $this->getCacheFile($key);
    if (@filemtime($cacheFile) > time()) {
        return false;
    }
    return $this->setValue($key, $value, $duration);
}

            

Defined in: yii\caching\Cache::addValues()

Adds multiple key-value pairs to cache.

The default implementation calls addValue() multiple times add values one by one. If the underlying cache storage supports multi-add, this method should be overridden to exploit that feature.

protected array addValues ( $data, $duration ) $data array

Array where key corresponds to cache key while value is the value stored.

$duration integer

The number of seconds in which the cached values will expire. 0 means never expire.

return array

Array of failed keys

Source code

                protected function addValues($data, $duration)
{
    $failedKeys = [];
    foreach ($data as $key => $value) {
        if ($this->addValue($key, $value, $duration) === false) {
            $failedKeys[] = $key;
        }
    }
    return $failedKeys;
}

            

Source code

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
public void attachBehaviors ( $behaviors ) $behaviors array

List of behaviors to be attached to the component

Source code

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            

Defined in: yii\base\Component::behaviors()

Returns a list of behaviors that this component should behave as.

Child classes may override this method to specify the behaviors they want to behave as.

The return value of this method should be an array of behavior objects or configurations indexed by behavior names. A behavior configuration can be either a string specifying the behavior class or an array of the following structure:

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

Note that a behavior class must extend from yii\base\Behavior. Behaviors can be attached using a name or anonymously. When a name is used as the array key, using this name, the behavior can later be retrieved using getBehavior() or be detached using detachBehavior(). Anonymous behaviors can not be retrieved or detached.

Behaviors declared in this method will be attached to the component automatically (on demand).

Source code

                public function behaviors()
{
    return [];
}

            

Defined in: yii\caching\Cache::buildKey()

Builds a normalized cache key from a given key.

If the given key is a string containing alphanumeric characters only and no more than 32 characters, then the key will be returned back prefixed with $keyPrefix. Otherwise, a normalized key is generated by serializing the given key, applying MD5 hashing, and prefixing with $keyPrefix.

public string buildKey ( $key ) $key mixed

The key to be normalized

return string

The generated cache key

Source code

                public function buildKey($key)
{
    if (is_string($key)) {
        $key = ctype_alnum($key) && StringHelper::byteLength($key) <= 32 ? $key : md5($key);
    } else {
        if ($this->_igbinaryAvailable) {
            $serializedKey = igbinary_serialize($key);
        } else {
            $serializedKey = serialize($key);
        }
        $key = md5($serializedKey);
    }
    return $this->keyPrefix . $key;
}

            

Defined in: yii\base\Component::canGetProperty()

Returns a value indicating whether a property can be read.

A property can be read if:

See also canSetProperty().

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true ) $name string

The property name

$checkVars boolean

Whether to treat member variables as properties

$checkBehaviors boolean

Whether to treat behaviors' properties as properties of this component

return boolean

Whether the property can be read

Source code

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            

Defined in: yii\base\Component::canSetProperty()

Returns a value indicating whether a property can be set.

A property can be written if:

See also canGetProperty().

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true ) $name string

The property name

$checkVars boolean

Whether to treat member variables as properties

$checkBehaviors boolean

Whether to treat behaviors' properties as properties of this component

return boolean

Whether the property can be written

Source code

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            

Deprecated since 2.0.14. On PHP >=5.5, use ::class instead.

Source code

                public static function className()
{
    return get_called_class();
}

            
public boolean delete ( $key ) $key mixed

A key identifying the value to be deleted from cache. This can be a simple string or a complex data structure consisting of factors representing the key.

return boolean

If no error happens during deletion

Source code

                public function delete($key)
{
    $key = $this->buildKey($key);
    return $this->deleteValue($key);
}

            

Deletes a value with the specified key from cache This is the implementation of the method declared in the parent class.

Source code

                protected function deleteValue($key)
{
    $cacheFile = $this->getCacheFile($key);
    return @unlink($cacheFile);
}

            

Source code

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            

Source code

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            

Source code

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            

Checks whether a specified key exists in the cache.

This can be faster than getting the value from the cache if the data is big. Note that this method does not check whether the dependency associated with the cached data, if there is any, has changed. So a call to get() may return false while exists returns true.

public boolean exists ( $key ) $key mixed

A key identifying the cached value. This can be a simple string or a complex data structure consisting of factors representing the key.

return boolean

True if a value exists in cache, false if the value is not in the cache or expired.

Source code

                public function exists($key)
{
    $cacheFile = $this->getCacheFile($this->buildKey($key));
    return @filemtime($cacheFile) > time();
}

            

Defined in: yii\caching\Cache::flush()

Deletes all values from cache.

Be careful of performing this operation if the cache is shared among multiple applications.

Source code

                public function flush()
{
    return $this->flushValues();
}

            

Deletes all values from cache.

This is the implementation of the method declared in the parent class.

Source code

                protected function flushValues()
{
    $this->gc(true, false);
    return true;
}

            

Removes expired cache files.

public void gc ( $force false, $expiredOnly true ) $force boolean

Whether to enforce the garbage collection regardless of $gcProbability. Defaults to false, meaning the actual deletion happens with the probability as specified by $gcProbability.

$expiredOnly boolean

Whether to removed expired cache files only. If false, all cache files under $cachePath will be removed.

Source code

                public function gc($force = false, $expiredOnly = true)
{
    if ($force || random_int(0, 1000000) < $this->gcProbability) {
        $this->gcRecursive($this->cachePath, $expiredOnly);
    }
}

            

Recursively removing expired cache files under a directory.

This method is mainly used by gc().

protected void gcRecursive ( $path, $expiredOnly ) $path string

The directory under which expired cache files are removed.

$expiredOnly boolean

Whether to only remove expired cache files. If false, all files under $path will be removed.

Source code

                protected function gcRecursive($path, $expiredOnly)
{
    if (($handle = opendir($path)) !== false) {
        while (($file = readdir($handle)) !== false) {
            if (strncmp($file, '.', 1) === 0) {
                continue;
            }
            $fullPath = $path . DIRECTORY_SEPARATOR . $file;
            $message = null;
            if (is_dir($fullPath)) {
                $this->gcRecursive($fullPath, $expiredOnly);
                if (!$expiredOnly) {
                    if (!@rmdir($fullPath)) {
                        $message = "Unable to remove directory '$fullPath'";
                        if ($error = error_get_last()) {
                            $message .= ": {$error['message']}";
                        }
                    }
                }
            } elseif (!$expiredOnly || $expiredOnly && @filemtime($fullPath) < time()) {
                if (!@unlink($fullPath)) {
                    $message = "Unable to remove file '$fullPath'";
                    if ($error = error_get_last()) {
                        $message .= ": {$error['message']}";
                    }
                }
            }
            $message and Yii::warning($message, __METHOD__);
        }
        closedir($handle);
    }
}

            
public mixed get ( $key ) $key mixed

A key identifying the cached value. This can be a simple string or a complex data structure consisting of factors representing the key.

return mixed

The value stored in cache, false if the value is not in the cache, expired, or the dependency associated with the cached data has changed.

Source code

                public function get($key)
{
    $key = $this->buildKey($key);
    $value = $this->getValue($key);
    if ($value === false || $this->serializer === false) {
        return $value;
    } elseif ($this->serializer === null) {
        $value = unserialize((string)$value);
    } else {
        $value = call_user_func($this->serializer[1], $value);
    }
    if (is_array($value) && !($value[1] instanceof Dependency && $value[1]->isChanged($this))) {
        return $value[0];
    }
    return false;
}

            

Source code

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            

Source code

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            

Returns the cache file path given the normalized cache key.

Source code

                protected function getCacheFile($normalizedKey)
{
    $cacheKey = $normalizedKey;
    if ($this->keyPrefix !== '') {
        
        $lenKeyPrefix = strlen($this->keyPrefix);
        $cacheKey = substr_replace($normalizedKey, '', 0, $lenKeyPrefix);
    }
    $cachePath = $this->cachePath;
    if ($this->directoryLevel > 0) {
        for ($i = 0; $i < $this->directoryLevel; ++$i) {
            if (($subDirectory = substr($cacheKey, $i + $i, 2)) !== false) {
                $cachePath .= DIRECTORY_SEPARATOR . $subDirectory;
            }
        }
    }
    return $cachePath . DIRECTORY_SEPARATOR . $normalizedKey . $this->cacheFileSuffix;
}

            

Defined in: yii\caching\Cache::getOrSet()

Method combines both set() and get() methods to retrieve value identified by a $key, or to store the result of $callable execution if there is no cache available for the $key.

Usage example:

public function getTopProducts($count = 10) {
    $cache = $this->cache; 
    return $cache->getOrSet(['top-n-products', 'n' => $count], function () use ($count) {
        return Products::find()->mostPopular()->limit($count)->all();
    }, 1000);
}
public mixed getOrSet ( $key, $callable, $duration null, $dependency null ) $key mixed

A key identifying the value to be cached. This can be a simple string or a complex data structure consisting of factors representing the key.

$callable callable|Closure

The callable or closure that will be used to generate a value to be cached. If you use $callable that can return false, then keep in mind that getOrSet() may work inefficiently because the yii\caching\Cache::get() method uses false return value to indicate the data item is not found in the cache. Thus, caching of false value will lead to unnecessary internal calls.

$duration integer|null

Default duration in seconds before the cache will expire. If not set, $defaultDuration value will be used.

$dependency yii\caching\Dependency|null

Dependency of the cached item. If the dependency changes, the corresponding value in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return mixed

Result of $callable execution

Source code

                public function getOrSet($key, $callable, $duration = null, $dependency = null)
{
    if (($value = $this->get($key)) !== false) {
        return $value;
    }
    $value = call_user_func($callable, $this);
    if (!$this->set($key, $value, $duration, $dependency)) {
        Yii::warning('Failed to set cache value for key ' . json_encode($key), __METHOD__);
    }
    return $value;
}

            

Retrieves a value from cache with a specified key.

This is the implementation of the method declared in the parent class.

protected string|false getValue ( $key ) $key string

A unique key identifying the cached value

return string|false

The value stored in cache, false if the value is not in the cache or expired.

Source code

                protected function getValue($key)
{
    $cacheFile = $this->getCacheFile($key);
    if (@filemtime($cacheFile) > time()) {
        $fp = @fopen($cacheFile, 'r');
        if ($fp !== false) {
            @flock($fp, LOCK_SH);
            $cacheValue = @stream_get_contents($fp);
            @flock($fp, LOCK_UN);
            @fclose($fp);
            return $cacheValue;
        }
    }
    return false;
}

            

Defined in: yii\caching\Cache::getValues()

Retrieves multiple values from cache with the specified keys.

The default implementation calls getValue() multiple times to retrieve the cached values one by one. If the underlying cache storage supports multiget, this method should be overridden to exploit that feature.

protected array getValues ( $keys ) $keys array

A list of keys identifying the cached values

return array

A list of cached values indexed by the keys

Source code

                protected function getValues($keys)
{
    $results = [];
    foreach ($keys as $key) {
        $results[$key] = $this->getValue($key);
    }
    return $results;
}

            

Source code

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            

Defined in: yii\base\Component::hasMethod()

Returns a value indicating whether a method is defined.

A method is defined if:

public boolean hasMethod ( $name, $checkBehaviors true ) $name string

The property name

$checkBehaviors boolean

Whether to treat behaviors' methods as methods of this component

return boolean

Whether the method is defined

Source code

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            

Defined in: yii\base\Component::hasProperty()

Returns a value indicating whether a property is defined for this component.

A property is defined if:

See also:

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true ) $name string

The property name

$checkVars boolean

Whether to treat member variables as properties

$checkBehaviors boolean

Whether to treat behaviors' properties as properties of this component

return boolean

Whether the property is defined

Source code

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            

Initializes this component by ensuring the existence of the cache path.

Source code

                public function init()
{
    parent::init();
    $this->cachePath = Yii::getAlias($this->cachePath);
    if (!is_dir($this->cachePath)) {
        FileHelper::createDirectory($this->cachePath, $this->dirMode, true);
    }
}

            
Deprecated This method is an alias for multiAdd() and will be removed in 2.1.0.

Defined in: yii\caching\Cache::madd()

Stores multiple items in cache. Each item contains a value identified by a key.

If the cache already contains such a key, the existing value and expiration time will be preserved.

public array madd ( $items, $duration 0, $dependency null ) $items array

The items to be cached, as key-value pairs.

$duration integer

Default number of seconds in which the cached values will expire. 0 means never expire.

$dependency yii\caching\Dependency|null

Dependency of the cached items. If the dependency changes, the corresponding values in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return array

Array of failed keys

Source code

                public function madd($items, $duration = 0, $dependency = null)
{
    return $this->multiAdd($items, $duration, $dependency);
}

            
Deprecated This method is an alias for multiGet() and will be removed in 2.1.0.

Defined in: yii\caching\Cache::mget()

Retrieves multiple values from cache with the specified keys.

Some caches (such as memcache, apc) allow retrieving multiple cached values at the same time, which may improve the performance. In case a cache does not support this feature natively, this method will try to simulate it.

public array mget ( $keys ) $keys string[]

List of string keys identifying the cached values

return array

List of cached values corresponding to the specified keys. The array is returned in terms of (key, value) pairs. If a value is not cached or expired, the corresponding array value will be false.

Source code

                public function mget($keys)
{
    return $this->multiGet($keys);
}

            
Deprecated This method is an alias for multiSet() and will be removed in 2.1.0.

Defined in: yii\caching\Cache::mset()

Stores multiple items in cache. Each item contains a value identified by a key.

If the cache already contains such a key, the existing value and expiration time will be replaced with the new ones, respectively.

public array mset ( $items, $duration null, $dependency null ) $items array

The items to be cached, as key-value pairs.

$duration integer|null

Default duration in seconds before the cache will expire. If not set, default $defaultDuration value is used.

$dependency yii\caching\Dependency|null

Dependency of the cached items. If the dependency changes, the corresponding values in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return array

Array of failed keys

Source code

                public function mset($items, $duration = null, $dependency = null)
{
    return $this->multiSet($items, $duration, $dependency);
}

            

Defined in: yii\caching\Cache::multiAdd()

Stores multiple items in cache. Each item contains a value identified by a key.

If the cache already contains such a key, the existing value and expiration time will be preserved.

public array multiAdd ( $items, $duration 0, $dependency null ) $items array

The items to be cached, as key-value pairs.

$duration integer

Default number of seconds in which the cached values will expire. 0 means never expire.

$dependency yii\caching\Dependency|null

Dependency of the cached items. If the dependency changes, the corresponding values in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return array

Array of failed keys

Source code

                public function multiAdd($items, $duration = 0, $dependency = null)
{
    $data = $this->prepareCacheData($items, $dependency);
    return $this->addValues($data, $duration);
}

            

Defined in: yii\caching\Cache::multiGet()

Retrieves multiple values from cache with the specified keys.

Some caches (such as memcache, apc) allow retrieving multiple cached values at the same time, which may improve the performance. In case a cache does not support this feature natively, this method will try to simulate it.

public array multiGet ( $keys ) $keys string[]

List of string keys identifying the cached values

return array

List of cached values corresponding to the specified keys. The array is returned in terms of (key, value) pairs. If a value is not cached or expired, the corresponding array value will be false.

Source code

                public function multiGet($keys)
{
    $keyMap = [];
    foreach ($keys as $key) {
        $keyMap[$key] = $this->buildKey($key);
    }
    $values = $this->getValues(array_values($keyMap));
    $results = [];
    foreach ($keyMap as $key => $newKey) {
        $results[$key] = false;
        if (isset($values[$newKey])) {
            if ($this->serializer === false) {
                $results[$key] = $values[$newKey];
            } else {
                $value = $this->serializer === null ? unserialize($values[$newKey])
                    : call_user_func($this->serializer[1], $values[$newKey]);
                if (is_array($value) && !($value[1] instanceof Dependency && $value[1]->isChanged($this))) {
                    $results[$key] = $value[0];
                }
            }
        }
    }
    return $results;
}

            

Defined in: yii\caching\Cache::multiSet()

Stores multiple items in cache. Each item contains a value identified by a key.

If the cache already contains such a key, the existing value and expiration time will be replaced with the new ones, respectively.

public array multiSet ( $items, $duration null, $dependency null ) $items array

The items to be cached, as key-value pairs.

$duration integer|null

Default duration in seconds before the cache will expire. If not set, default $defaultDuration value is used.

$dependency yii\caching\Dependency|null

Dependency of the cached items. If the dependency changes, the corresponding values in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return array

Array of failed keys

Source code

                public function multiSet($items, $duration = null, $dependency = null)
{
    if ($duration === null) {
        $duration = $this->defaultDuration;
    }
    $data = $this->prepareCacheData($items, $dependency);
    return $this->setValues($data, $duration);
}

            

Defined in: yii\base\Component::off()

Detaches an existing event handler from this component.

This method is the opposite of on().

Note: in case wildcard pattern is passed for event name, only the handlers registered with this wildcard will be removed, while handlers registered with plain names matching this wildcard will remain.

See also on().

public boolean off ( $name, $handler null ) $name string

Event name

$handler callable|null

The event handler to be removed. If it is null, all handlers attached to the named event will be removed.

return boolean

If a handler is found and detached

Source code

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            

Source code

                
public function offsetExists($key)
{
    return $this->get($key) !== false;
}

            
public mixed offsetGet ( $key ) $key string

A key identifying the cached value

return mixed

The value stored in cache, false if the value is not in the cache or expired.

Source code

                
public function offsetGet($key)
{
    return $this->get($key);
}

            

Defined in: yii\caching\Cache::offsetSet()

Stores the value identified by a key into cache.

If the cache already contains such a key, the existing value will be replaced with the new ones. To add expiration and dependencies, use the set() method. This method is required by the interface ArrayAccess.

public void offsetSet ( $key, $value ) $key string

The key identifying the value to be cached

$value mixed

The value to be cached

Source code

                
public function offsetSet($key, $value)
{
    $this->set($key, $value);
}

            

Source code

                
public function offsetUnset($key)
{
    $this->delete($key);
}

            

Defined in: yii\base\Component::on()

Attaches an event handler to an event.

The event handler must be a valid PHP callback. The following are some examples:

function ($event) { ... }         
[$object, 'handleClick']          
['Page', 'handleClick']           
'handleClick'                     

The event handler must be defined with the following signature,

function ($event)

where $event is an yii\base\Event object which includes parameters associated with the event.

Since 2.0.14 you can specify event name as a wildcard pattern:

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

See also off().

public void on ( $name, $handler, $data null, $append true ) $name string

The event name

$handler callable

The event handler

$data mixed

The data to be passed to the event handler when the event is triggered. When the event handler is invoked, this data can be accessed via yii\base\Event::$data.

$append boolean

Whether to append new event handler to the end of the existing handler list. If false, the new handler will be inserted at the beginning of the existing handler list.

Source code

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            

Defined in: yii\caching\Cache::set()

Stores a value identified by a key into cache.

If the cache already contains such a key, the existing value and expiration time will be replaced with the new ones, respectively.

public boolean set ( $key, $value, $duration null, $dependency null ) $key mixed

A key identifying the value to be cached. This can be a simple string or a complex data structure consisting of factors representing the key.

$value mixed

The value to be cached

$duration integer|null

Default duration in seconds before the cache will expire. If not set, default $defaultDuration value is used.

$dependency yii\caching\Dependency|null

Dependency of the cached item. If the dependency changes, the corresponding value in the cache will be invalidated when it is fetched via get(). This parameter is ignored if $serializer is false.

return boolean

Whether the value is successfully stored into cache

Source code

                public function set($key, $value, $duration = null, $dependency = null)
{
    if ($duration === null) {
        $duration = $this->defaultDuration;
    }
    if ($dependency !== null && $this->serializer !== false) {
        $dependency->evaluateDependency($this);
    }
    if ($this->serializer === null) {
        $value = serialize([$value, $dependency]);
    } elseif ($this->serializer !== false) {
        $value = call_user_func($this->serializer[0], [$value, $dependency]);
    }
    $key = $this->buildKey($key);
    return $this->setValue($key, $value, $duration);
}

            

Stores a value identified by a key in cache.

This is the implementation of the method declared in the parent class.

protected boolean setValue ( $key, $value, $duration ) $key string

The key identifying the value to be cached

$value string

The value to be cached. Other types (If you have disabled $serializer) unable to get is correct in getValue().

$duration integer

The number of seconds in which the cached value will expire. Fewer than or equal to 0 means 1 year expiration time.

return boolean

True if the value is successfully stored into cache, false otherwise

Source code

                protected function setValue($key, $value, $duration)
{
    $this->gc();
    $cacheFile = $this->getCacheFile($key);
    if ($this->directoryLevel > 0) {
        @FileHelper::createDirectory(dirname($cacheFile), $this->dirMode, true);
    }
    
    
    
    if (is_file($cacheFile) && function_exists('posix_geteuid') && fileowner($cacheFile) !== posix_geteuid()) {
        @unlink($cacheFile);
    }
    if (@file_put_contents($cacheFile, $value, LOCK_EX) !== false) {
        if ($this->fileMode !== null) {
            @chmod($cacheFile, $this->fileMode);
        }
        if ($duration <= 0) {
            $duration = 31536000; 
        }
        if (@touch($cacheFile, $duration + time())) {
            clearstatcache();
            return true;
        }
        return false;
    }
    $message = "Unable to write cache file '{$cacheFile}'";
    if ($error = error_get_last()) {
        $message .= ": {$error['message']}";
    }
    Yii::warning($message, __METHOD__);
    return false;
}

            

Defined in: yii\caching\Cache::setValues()

Stores multiple key-value pairs in cache.

The default implementation calls setValue() multiple times store values one by one. If the underlying cache storage supports multi-set, this method should be overridden to exploit that feature.

protected array setValues ( $data, $duration ) $data array

Array where key corresponds to cache key while value is the value stored

$duration integer

The number of seconds in which the cached values will expire. 0 means never expire.

return array

Array of failed keys

Source code

                protected function setValues($data, $duration)
{
    $failedKeys = [];
    foreach ($data as $key => $value) {
        if ($this->setValue($key, $value, $duration) === false) {
            $failedKeys[] = $key;
        }
    }
    return $failedKeys;
}

            

Defined in: yii\base\Component::trigger()

Triggers an event.

This method represents the happening of an event. It invokes all attached handlers for the event including class-level handlers.

Source code

                public function trigger($name, ?Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            
            if ($event->handled) {
                return;
            }
        }
    }
    
    Event::trigger($this, $name, $event);
}

            

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4