myoperator/libmemcached

通用的Memcached库

dev-master 2019-09-10 10:33 UTC

This package is not auto-updated.

Last update: 2024-09-30 16:37:29 UTC


README

此库旨在用作myopeator项目中所需较少附加功能的memcached连接器。否则,这与使用memcached库相同。

功能

  • 命名空间和定义
  • PSR-4自动加载兼容结构
  • 使用PHPUnit进行单元测试
  • 易于在任何框架或纯PHP文件中使用

安装

您可以通过在您的composer.json中添加以下部分轻松安装此包

"repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/myoperator/libmemcached.git"
        }
    ]

然后执行: composer require myoperator/libmemcached:dev-master

或者在您的composer.json中添加以下内容

  "require": {
        "myoperator/libmemcached": "dev-master"
  }

您的composer.json将如下所示

{
    "require": {
        "myoperator/libmemcached": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/myoperator/libmemcached.git"
        }
    ]
}

使用方法

  1. vendor/autoload包含到您的项目中
   include_once 'vendor/autoload.php';
  1. 配置包
  use \MyOperator\LibMemcached;

  $memcache = LibMemcached::getInstance(['host' => 'localhost', 'port' => '11211']); //defaults to 127.0.0.1:11211

  // Get value
  $val = $memcache->get('a'); // Null
  $memcache->set('a', 1); // a = 1
  $memcache->increment('a'); // a =2
  $memcache->decrement('a'); // a =1

模拟

由于这是一个memcache库,因此任何使用此库的代码都倾向于避免实际网络请求(此库执行),以进行单元测试。

为了避免这些网络场景,此库方便地提供了一个模拟实例来测试memcached的一些最常用方法,包括

  • get
  • set
  • increment
  • decrement
  • addServer
  • getVersion

要在任何框架中模拟此库,您可以简单地使用以下示例代码

$mockedMemcacheInstance = \MyOperator\LibMemcached::getMockInstance();

// Now you can pretty much do anything you'd expect with memcache, to simulate unit test behaviours
// For example, setting and getting values is easy :)

$mockedMemcacheInstance->set('key', 'val');

$mockedMemcacheInstance->get('key'); //returns 'val'

请查看tests/unit目录以了解可以模拟哪些方法和如何使用模拟。

待办事项

  • 添加phpdoc文档