src/core/framework/core/3rdparty/ezcomponents/Cache/src/stack.php
public function pushStorage( ezcCacheStackStorageConfiguration $storageConf )
    {
        if ( isset( $this->storageIdMap[$storageConf->id] ) )
        {
            throw new ezcCacheStackIdAlreadyUsedException(
                $storageConf->id
            );
        }
        if ( in_array( $storageConf->storage, $this->storageIdMap, true ) )
        {
            throw new ezcCacheStackStorageUsedTwiceException(
                $storageConf->storage
            );
        }
        array_unshift( $this->storageStack, $storageConf );
        $this->storageIdMap[$storageConf->id] = $storageConf->storage;
    }
public function pushStorage( ezcCacheStackStorageConfiguration $storageConf )
    {
        if ( isset( $this->storageIdMap[$storageConf->id] ) )
        {
            throw new ezcCacheStackIdAlreadyUsedException(
                $storageConf->id
            );
        }
        if ( in_array( $storageConf->storage, $this->storageIdMap, true ) )
        {
            throw new ezcCacheStackStorageUsedTwiceException(
                $storageConf->storage
            );
        }
        array_unshift( $this->storageStack, $storageConf );
        $this->storageIdMap[$storageConf->id] = $storageConf->storage;
    }
public function pushStorage ( ezcCacheStackStorageConfiguration $ storageConf ) { if ( isset ( $ this -> storageIdMap [ $ storageConf -> id ] ) ) { throw new ezcCacheStackIdAlreadyUsedException ( $ storageConf -> id ) ; } if ( in_array ( $ storageConf -> storage , $ this -> storageIdMap , true ) ) { throw new ezcCacheStackStorageUsedTwiceException ( $ storageConf -> storage ) ; } array_unshift ( $ this -> storageStack , $ storageConf ) ; $ this -> storageIdMap [ $ storageConf -> id ] = $ storageConf -> storage ; }
Add a storage to the top of the stack.

This method is used to add a new storage to the top of the cache. The
$storageConf of type {@link ezcCacheStackStorageConfiguration} consists
of the actual {@link ezcCacheStackableStorage} and other information.

Most importantly, the configuration object contains an ID, which must be
unique within the whole storage. The itemLimit setting determines how
many items might be stored in the storage at all. freeRate determines
which fraction of itemLimit will be freed by the {@link
ezcCacheStackStackReplacementStrategy} of the stack, when the storage
runs full.

@param ezcCacheStackStorageConfiguration $storageConf
Add a storage to the top of the stack .