elfet/pure

此包已被废弃且不再维护。未建议替代包。

Pure PHP 键值存储

v3.0.0 2018-09-18 08:59 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:22:27 UTC


README

Build Status

这是一个用 PHP 编写的简单键值存储。它不使用文件或其他数据库,只是纯 PHP。

安装

通过 Composer

composer require elfet/pure

现在你可以这样运行 pure: php vendor/bin/pure

或者你可以全局安装 PurePHP,通过 pure 命令运行 pure。

快速指南

通过此命令启动 PurePHP

pure start &

现在 PurePHP 服务器正在运行。运行此命令

pure client

现在你可以通过简单的命令测试 PurePHP,例如这样

> pure.queue.collection.push('hello')
> pure.queue.collection.push('world')
> pure.queue.collection.pop() ~ ' ' ~ pure.queue.collection.pop()
string(11) "hello world"

在 pure 控制台中,你可以使用 表达式语言 写入命令。要退出控制台,请输入 exit 命令。

文档

连接到 PurePHP 服务器

$port = 1337; // Default port value
$host = '127.0.0.1'; // Default host value
//...
$pure = new Pure\Client($port, $host);

存储

PurePHP 提供不同类型的存储。所有支持的存储都在 src/Storage 中。你可以通过以下方法访问它们,并像直接使用它们一样使用它们。

你不需要手动创建任何集合。它们将在第一次访问时自动创建。

$pure->map('collection')->...
$pure->stack('collection')->...
$pure->queue('collection')->...
$pure->priority('collection')->...

或者你可以通过魔术方法访问它们。

$pure->map->collection->...
$pure->stack->collection->...
$pure->queue->collection->...
//...

数组存储 ->map

这是一个使用 PHP 数组存储数据的简单存储。

要在集合中存储日期,请使用 push 方法

$pure->map('collection')->push(['hello' => 'world']);

要从集合中通过键获取值,请使用 get 方法

$value = $pure->map('collection')->get('hello'); // will return 'world'.

要获取所有元素,请使用 all 方法

$all = $pure->map('collection')->all();

你可以通过 has 方法检查键是否存在,并通过 delete 方法删除元素。

堆栈存储 ->stack

此存储使用 SplStack 存储数据。

你可以使用所有 SplStack 方法以及 all 方法。

队列存储 ->queue

此存储使用 SplQueue 存储数据。

你可以使用 SplQueue 方法以及 all 方法。

SplQueue 使用 enqueuedequeue 来从队列中添加和移除。在 QueueStorage 中,你可以使用 pushpop 方法来完成。

优先队列存储 ->priority

此存储使用 SplPriorityQueue 存储数据。

你可以使用所有 SplPriorityQueue 方法以及 all 方法。

过滤

每个存储都支持 filter 函数。

示例

// Get all elements that more than a 100.
$result = $pure->queue('collection')->filter('value > 100');

// Limit to 10.
$result = $pure->priority('collection')->filter('value > 100', 10);

// Complex expression.
$result = $pure->of('collection')->filter('value["year"] > 2000 and value["name"] matches "/term/"');

过滤器规则使用 表达式语言。在表达式中可以使用两个变量: keyvalue

删除

您可以通过 delete 方法来删除存储。

$pure->delete('collection');

待办事项

  • 导出到文件
  • 从文件加载
  • 复制
  • 分片