fire015 / flintstone
使用平面文件存储的PHP键值数据库
v2.3.0
2021-01-20 10:36 UTC
Requires
- php: >=7.3
Requires (Dev)
- phpunit/phpunit: ^9
README
使用平面文件存储的PHP键值数据库。
特性包括
- 内存高效
- 文件锁定
- 缓存
- Gzip压缩
- 易于使用
安装
安装Flintstone最简单的方式是通过 Composer。运行以下命令来安装。
composer require fire015/flintstone
<?php require 'vendor/autoload.php'; use Flintstone\Flintstone; $users = new Flintstone('users', ['dir' => '/path/to/database/dir/']);
要求
- PHP 7.3+
数据类型
Flintstone可以存储任何可以格式化为字符串的数据类型。默认情况下,它使用serialize()
。有关更多详细信息,请参阅更改格式化程序。
选项
使用示例
<?php // Load a database $users = new Flintstone('users', ['dir' => '/path/to/database/dir/']); // Set a key $users->set('bob', ['email' => 'bob@site.com', 'password' => '123456']); // Get a key $user = $users->get('bob'); echo 'Bob, your email is ' . $user['email']; // Retrieve all key names $keys = $users->getKeys(); // returns array('bob') // Retrieve all data $data = $users->getAll(); // returns array('bob' => array('email' => 'bob@site.com', 'password' => '123456')); // Delete a key $users->delete('bob'); // Flush the database $users->flush();
更改格式化程序
默认情况下,Flintstone将使用PHP的serialize函数来编码/解码数据,但你可以使用自己的类来覆盖此行为(如果你更喜欢的话)。
只需确保它实现了Flintstone\Formatter\FormatterInterface
,然后你可以将其作为formatter
选项提供。
如果你希望使用JSON作为格式化程序,Flintstone已经按照以下示例提供
<?php require 'vendor/autoload.php'; use Flintstone\Flintstone; use Flintstone\Formatter\JsonFormatter; $users = new Flintstone('users', [ 'dir' => __DIR__, 'formatter' => new JsonFormatter() ]);
更改缓存
为了加速数据检索,Flintstone可以将get()
的结果存储在缓存存储中。默认情况下,它使用一个简单的数组,这个数组只在Flintstone
对象存在期间持续。
如果你想使用自己的缓存存储(如Memcached),你可以传递一个类作为cache
选项。只需确保它实现了Flintstone\Cache\CacheInterface
。