Код IT
← Каталог

Laravel - MVC-фреймворк и паттерны проектирования — Унификация интерфейсов

Фрагмент из «Laravel - MVC-фреймворк и паттерны проектирования»: Унификация интерфейсов.

PHP main.php
interface CacheStore
{
    public function get($key);
    public function put($key, $value, $seconds);
}

class RedisAdapter implements CacheStore
{
    protected $redis;

    public function __construct(RedisClient $redis)
    {
        $this->redis = $redis;
    }

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

    public function put($key, $value, $seconds)
    {
        $this->redis->setex($key, $seconds, $value);
    }
}
interface CacheStore
{
    public function get($key);
    public function put($key, $value, $seconds);
}

class RedisAdapter implements CacheStore
{
    protected $redis;

    public function __construct(RedisClient $redis)
    {
        $this->redis = $redis;
    }

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

    public function put($key, $value, $seconds)
    {
        $this->redis->setex($key, $seconds, $value);
    }
}