pcelta/doctrine-cache-factory

Doctrine 缓存工厂

0.1.0 2016-06-28 14:00 UTC

This package is not auto-updated.

Last update: 2024-09-25 16:33:07 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads License

doctrine-cache-factory

Doctrine Cache Factory 是一种更好的方式,可以将您的应用程序与缓存适配器解耦。只需更改配置,工厂就会加载不同的客户端。

安装

{
    "require": {
        "pcelta/doctrine-cache-factory": "dev-master"
    }
}

可用的适配器

  • 自定义
  • 数组
  • Memcache
  • Memcached
  • Redis

编写自己的适配器

使用适配器命名空间指定适配器的位置。

use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter'           => 'Memcache',
    'adapter_namespace' => '\Doctrine\Common\Cache\%sCache',
    'host'              => '127.0.0.1',
    'port'              => 11211,
];

$cacheProvider = $factory->create($cacheSettings);

如何使用数组

use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter'       => 'Array',
];

$cacheProvider = $factory->create($cacheSettings);

如何使用Memcache

安装 php5-memcache

sudo apt-get install php5-memcache

use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter_name' => 'Memcache',
    'host'         => '127.0.0.1',
    'port'         => 11211,
];

$cacheProvider = $factory->create($cacheSettings);

如何使用Memcached

安装 php5-memcached

sudo apt-get install php5-memcached

use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter_name' => 'Memcached',
    'host'         => '127.0.0.1',
    'port'         => 11211,
];

$cacheProvider = $factory->create($cacheSettings);

如何使用Redis

安装 PHPRedis

git clone git@github.com:phpredis/phpredis.git
cd phpredis
phpize
./configure
make && make install
use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter_name' => 'Redis',
    'host'         => '127.0.0.1',
    'port'         => 11211,
];

$cacheProvider = $factory->create($cacheSettings);

通用用法

use Pcelta\Doctrine\Cache\Factory;

$factory = new Factory();
$cacheSettings [
    'adapter_name' => 'Memcache',
    'host'         => '127.0.0.1',
    'port'         => 11211,
];

$cacheProvider = $factory->create($cacheSettings);

$cacheProvider->save('your-key', 'your-data');
$data = $cacheProvider->fetch('your-key');

echo $data; // your-data

比较 Doctrine Cache Factory 与 Doctrine Cache Pure

Doctrine Cache

$memcache = new Memcache(); // it's bad to uncouple
$memcache->connect('memcache_host', 11211);

$cacheDriver = new \Doctrine\Common\Cache\MemcacheCache();
$cacheDriver->setMemcache($memcache);
$cacheDriver->save('cache_id', 'my_data');

Doctrine Cache Factory

$factory = new \Pcelta\Doctrine\Cache\Factory();
$cacheSettings [
    'adapter_name' => 'Memcache', // it's much better
    'host'         => '127.0.0.1',
    'port'         => 11211,
];

$cacheProvider = $factory->create($cacheSettings); 
$cacheProvider->save('cache_id', 'your-data');

路线图

  • Couchbase

许可

MIT 许可证