tarjei/memcachebundle

用于与 symfony 一起使用 memcached 的组件

安装次数: 6,471

依赖者: 0

建议者: 0

安全: 0

星标: 22

关注者: 1

分支: 5

开放问题: 1

类型:symfony-bundle

dev-master 2013-08-28 11:00 UTC

This package is not auto-updated.

Last update: 2020-01-01 18:10:52 UTC


README

这是一个简单的组件,它创建了一个您可以使用的服务。

注意:该服务支持创建 PHP Memcache 扩展(即 https://php.ac.cn/memcachehttps://php.ac.cn/memcached),但它不保护您免受两个服务接口差异的影响,因为它返回原始对象。

安装

添加到依赖项

[SMMemcacheBundle]
    git=git://github.com/tarjei/MemcacheBundle.git
    target=/bundles/SM/MemcacheBundle

然后使用您的内核注册该组件

// app/AppKernel.php
// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new SM\MemcacheBundle\SMMemcacheBundle(),
    // ...
);

确保您还使用自动加载器注册了命名空间

// app/autoload.php
$loader->registerNamespaces(array(
    // ...
    'SM\\MemcacheBundle' => __DIR__ . '/../vendor/bundles',
));

配置

在您的生产/开发环境中

# app/config/config.yml
sm_memcache:
    use_mock: false
    port: 11211
    host: localhost

在您的测试环境中

# app/config/config.yml
sm_memcache:
    use_mock: true

使用方法

该服务名为 sm_memcache,返回一个普通的 Memcache 或 Memcached php 对象

$memcached = $container->get("sm_memcache");
$memcached->set("someKey", "somevalue");

该服务仅仅是普通的 Memcache 对象 (https://php.ac.cn/memcache),因此您可以使用正常的方法。

对于测试,有一个特殊的 MockMemcache 对象,您可以使用它来模拟 memcache 服务。

选项

如果您使用 Memcached 类,您可以在配置中传递选项给实例。例如

sm_memcache:
    port: 11211
    host: localhost
    class: Memcached
    options:
        igbinary:
            name: serializer
            value: serializer_igbinary

此示例将 Memcached::OPT_SERIALIZER 设置为 Memcached::SERIALIZER_IGBINARY 在应用选项之前,选项将转换为以下格式

  • 选项名称转换为 Memcached::OPT_*UPPERCASE_NAME* 常量
  • 选项值转换为 Memcached::*UPPERCASE_NAME*

如果您使用 Memcache 类,则忽略选项块。

待办事项

  • 支持多个 memcache 服务器。
  • 在模拟模块中支持更多方法。