tarjei / memcachebundle
用于与 symfony 一起使用 memcached 的组件
dev-master
2013-08-28 11:00 UTC
Requires
- php: >=5.3.2
- symfony/framework-bundle: 2.*
This package is not auto-updated.
Last update: 2020-01-01 18:10:52 UTC
README
这是一个简单的组件,它创建了一个您可以使用的服务。
注意:该服务支持创建 PHP Memcache 扩展(即 https://php.ac.cn/memcache 和 https://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 服务器。
- 在模拟模块中支持更多方法。