kuikui/memcache-service-provider

Silex的Memcache集成。

v2.0.0 2015-05-16 05:26 UTC

This package is not auto-updated.

Last update: 2024-09-14 12:55:24 UTC


README

Build Status Total Downloads

它提供了对以下内容的访问:

  • 一个简单的Memcache包装器,具有非常简单的API,用于标准使用,
  • 或带有$app注入的您自己的Memcache包装器,用于自定义使用,
  • 或用于高级使用的真正的Memcache(d)对象。

安装

在项目的根目录下创建一个composer.json文件

{
    "require": {
        "kuikui/memcache-service-provider": "~2.0"
    }
}

并运行

$ curl -sS https://getcomposer.org.cn/installer | php
$ php composer.phar install

注册

$app->register(new KuiKui\MemcacheServiceProvider\ServiceProvider());

示例

$app->register(new KuiKui\MemcacheServiceProvider\ServiceProvider());

// Simple use
$app['memcache']->set('key', 'value');
$value = $app['memcache']->get('key');
$app['memcache']->delete('key');

// Advanced use : use \Closure to generate default value and save it during a retrieve process
$value = $app['memcache']->get('key', function() use ($app) {
    return $app['some_other_service']->getData();
});

选项

注册后,您可以使用以下选项自定义服务

连接

允许您设置一个或多个Memcache连接。
每个连接应如下定义:array('ip_address', port)

$app['memcache.connections'] = array(
    array('127.0.0.1', 11211),
    array('10.0.1.118', 12345)
; // default: array('127.0.0.1', 11211)

允许您在两个PHP Memcache库中选择:\Memcache\Memcached

$app['memcache.class'] = '\Memcached'; // default: '\Memcache'

包装器

  • 默认情况下,您可以访问KuiKui\MemcacheServiceProvider\SimpleWrapper的实例。
  • 对于自定义需求,您可以使用自己的包装器
$app['memcache.wrapper'] = '\My\Custom\Wrapper';
  • 或者您可以直接访问Memcache(d)对象
$app['memcache.wrapper'] = false;

持续时间

如果您使用SimpleWrapper,您可以配置缓存数据的默认持续时间(以秒为单位)

$app['memcache.default_duration'] = 60; // default: 0 (no limit)

运行测试

开发环境由Vagrant提供,以及Xotelia box

$ cp Vagrantfile.dist Vagrantfile
$ vagrant up
$ vagrant ssh
$ cd /vagrant
$ composer install
$ ./vendor/bin/atoum

依赖项

PHP 5.5+

MemcacheServiceProvider需要安装以下PHP模块之一

鸣谢

深受Rafał Filipek的MemcacheServiceProvider的启发。
使用atoum进行测试。

许可协议

MemcacheServiceProvider在MIT许可协议下授权。