Ищите Cache Wrapper на основе драйвера PHP - PullRequest
1 голос
/ 27 февраля 2011

Я ищу решение для независимого от PHP кэша кода.

Какой-то класс или библиотека, обеспечивающие независимый от кэша слой.

Так что я могу начать кодирование и использовать файловый кеш в начале и переключиться на apc / eaccellerator / memcached, когда загрузка проектов возрастет.

Я знаю, это не сложно написать самостоятельно, но это также причина, почему я считаю, что нечто подобное уже существует. И я бы предпочел использовать уже протестированное решение:)

Заранее спасибо за ваш вклад!

Edit: Извините, ребята, но мне нужна отдельная библиотека, которая должна хорошо сочетаться с существующими структурами.

Ответы [ 5 ]

2 голосов
/ 27 февраля 2011

CodeIgniter имеет хороший драйвер кеша .

2 голосов
/ 27 февраля 2011

Решения такого рода должны существовать практически во всех PHP Framework.

Для пары примеров

  • В Zend Framework вы можете использовать Zend_Cache: переключение с одного бэкэнда на другой - это просто вопрос конфигурации.
  • Существует нечто, похожее на эквивалент Kohana: О кэше Kohana
  • А вот и Symfony: Класс sfCache
1 голос
/ 27 февраля 2011
0 голосов
/ 07 февраля 2012

PEAR имеет пакет Cache , который содержит контейнеры для:

  • База данных (PEAR DB lib, PEAR MDB2 lib, PHPlib db)
  • Файл
  • разделяемая память (SHM)
  • Msession

PEAR's Cache_Lite использует только файлы.

0 голосов
/ 27 февраля 2011

Почему бы не создать свою собственную систему кеша, это не так уж сложно, просто иметь структуру для загрузки драйверов, иметь API-интерфейс для реализации, и вы должны быть хороши

class PHPCache
{
    protected $Driver;
    public function __construct($driver)
    {
        require_once 'drivers/' . $drivers . '.driver.php';
        $driver = "PHPCacheDriver_" . $driver;

        $this->Driver = new $driver;
    }


    public function create($key,$value)
    {
        return $this->Driver->create($key,$value);
    }

    public function read($key,$value)
    {
        return $this->Driver->read($key,$value);
    }

    public function update($key,$value)
    {
         return $this->Driver->update($key,$value);
    }

    public function remove($key)
    {
        return $this->Driver->remove($key);
    }
}

И затем каждый драйвер реализует интерфейс и CRUD данные соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...