插件数据存储(1):Storage
插件如果需要保存设置等信息,可以使用系统提供的Storage类来完成数据的存储读取,数据会被存储在MySQL数据库的storage表里。 该存储方式适合存储 key-value 类型的键值对数据,如插件的设置项等。
写入数据
$plugin_storage = Storage::getInstance('plugin_name');//使用插件的英文名称初始化一个存储实例
$plugin_storage->setValue('key', 'xxx'); // 设置key的值为 xxx,最大可以存储长度为65,535个字符的数据
设置写入数据类型:数据存储还支持第三个参数指定存储数据的类型,读取时会返回相应的数据类型,目前支持4种类型,默认是string类型。
- string //读取时返回string
- number // 读取时返回float类型
- boolean // 读取时返回布尔类型
- array // 返回数组
如:
$plugin_storage = Storage::getInstance('plugin_name');
$data = ['name' => 'tom', 'age' => 19];
$plugin_storage->setValue('key', $data, 'array'); //存储为数组类型,这样数组会被序列化后存入数据库,读取的时候会被自动反序列化。
读取数据
$plugin_storage = Storage::getInstance('plugin_name'); //使用插件的英文名称初始化一个存储实例
$ak = $plugin_storage->getValue('key'); // 读取key值
清理删除数据清理删除数据
$plugin_storage = Storage::getInstance('plugin_name'); //使用插件的英文名称初始化一个存储实例
$ak = $plugin_storage->deleteName('key') // 删除此插件创建的一行名为key的数据
$ak = $plugin_storage->deleteAllName('YES'); //删除此插件创建的所有数据, 请传入大写的"YES"来确认删除 ,一般用于插件删除回调函数。