master

laravel/framework

Last updated at: 29/12/2023 09:20

ApcStore.php

TLDR

The ApcStore.php file is a part of the Illuminate\Cache namespace in the Demo Projects project. It contains the ApcStore class, which is a subclass of TaggableStore. The class provides methods for storing, retrieving, incrementing & decrementing values in the cache using the APC (Alternative PHP Cache) extension.

Methods

__construct(ApcWrapper $apc, $prefix = '')

Constructor method for the ApcStore class. It initializes the ApcWrapper instance and the cache key prefix.

get($key)

Retrieves an item from the cache by its key. The cache key prefix is prepended to the key before retrieval.

put($key, $value, $seconds)

Stores an item in the cache for a given number of seconds. The cache key prefix is prepended to the key before storage.

increment($key, $value = 1)

Increments the value of an item in the cache by the specified value. The cache key prefix is prepended to the key before incrementing.

decrement($key, $value = 1)

Decrements the value of an item in the cache by the specified value. The cache key prefix is prepended to the key before decrementing.

forever($key, $value)

Stores an item in the cache indefinitely (i.e., without an expiration time). Equivalent to calling put($key, $value, 0).

forget($key)

Removes an item from the cache by its key. The cache key prefix is prepended to the key before deletion.

flush()

Removes all items from the cache.

getPrefix()

Returns the cache key prefix.

END

<?php

namespace Illuminate\Cache;

class ApcStore extends TaggableStore
{
    use RetrievesMultipleKeys;

    /**
     * The APC wrapper instance.
     *
     * @var \Illuminate\Cache\ApcWrapper
     */
    protected $apc;

    /**
     * A string that should be prepended to keys.
     *
     * @var string
     */
    protected $prefix;

    /**
     * Create a new APC store.
     *
     * @param  \Illuminate\Cache\ApcWrapper  $apc
     * @param  string  $prefix
     * @return void
     */
    public function __construct(ApcWrapper $apc, $prefix = '')
    {
        $this->apc = $apc;
        $this->prefix = $prefix;
    }

    /**
     * Retrieve an item from the cache by key.
     *
     * @param  string|array  $key
     * @return mixed
     */
    public function get($key)
    {
        return $this->apc->get($this->prefix.$key);
    }

    /**
     * Store an item in the cache for a given number of seconds.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @param  int  $seconds
     * @return bool
     */
    public function put($key, $value, $seconds)
    {
        return $this->apc->put($this->prefix.$key, $value, $seconds);
    }

    /**
     * Increment the value of an item in the cache.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return int|bool
     */
    public function increment($key, $value = 1)
    {
        return $this->apc->increment($this->prefix.$key, $value);
    }

    /**
     * Decrement the value of an item in the cache.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return int|bool
     */
    public function decrement($key, $value = 1)
    {
        return $this->apc->decrement($this->prefix.$key, $value);
    }

    /**
     * Store an item in the cache indefinitely.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return bool
     */
    public function forever($key, $value)
    {
        return $this->put($key, $value, 0);
    }

    /**
     * Remove an item from the cache.
     *
     * @param  string  $key
     * @return bool
     */
    public function forget($key)
    {
        return $this->apc->delete($this->prefix.$key);
    }

    /**
     * Remove all items from the cache.
     *
     * @return bool
     */
    public function flush()
    {
        return $this->apc->flush();
    }

    /**
     * Get the cache key prefix.
     *
     * @return string
     */
    public function getPrefix()
    {
        return $this->prefix;
    }
}