elfet / pure
Pure PHP 键值存储
Requires
- react/react: ~0.4
- symfony/console: ~2.6 || ~3.0 || ~4.0
- symfony/debug: ~2.6 || ~3.0 || ~4.0
- symfony/expression-language: ~2.6 || ~3.0 || ~4.0
Requires (Dev)
- phpunit/phpunit: ~4.4
- symfony/finder: ~2.6 || ~3.0 || ~4.0
- symfony/process: ~2.6 || ~3.0 || ~4.0
This package is not auto-updated.
Last update: 2020-01-24 15:22:27 UTC
README
这是一个用 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
使用 enqueue
和 dequeue
来从队列中添加和移除。在 QueueStorage 中,你可以使用 push
和 pop
方法来完成。
优先队列存储 ->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/"');
过滤器规则使用 表达式语言。在表达式中可以使用两个变量: key
和 value
。
删除
您可以通过 delete
方法来删除存储。
$pure->delete('collection');
待办事项
- 导出到文件
- 从文件加载
- 复制
- 分片