pozitronik / yii2-options
服务器端选项存储
1.1.0
2023-04-18 17:39 UTC
Requires
- php: >=8.0
Requires (Dev)
- codeception/codeception: ^5.0
- codeception/module-asserts: *
- codeception/module-db: *
- codeception/module-phpbrowser: *
- codeception/module-yii2: *
- vlucas/phpdotenv: ^5.4.1
- yiisoft/yii2: dev-master
This package is auto-updated.
Last update: 2024-09-18 21:14:58 UTC
README
在服务器上存储系统设置。
安装
推荐通过 composer 安装扩展。
执行
php composer.phar require pozitronik/yii2-options "dev-master"
或添加
"pozitronik/yii2-options": "dev-master"
到您项目中 composer.json 文件的 require 部分。
描述
SysOptions 模型可以存储与任何对象(假设对象是系统用户,但也可以用于其他对象)关联的一组任意 key-value 参数。数据存储在结构为 id|option_name|option_value, 的表中,模型仅提供方便访问存储的接口。存储值的类型仅受所使用的序列化方法限制。默认情况下,提供类型安全的标量数据、数组和对象的存储,且无递归引用。
使用
扩展需要一个用于存储数据的表。可以通过以下命令创建:
yii migrate --migrationPath=@vendor/pozitronik/yii2-options/migrations
这将创建一个名为 sys_options 的表,无需其他配置。
如果需要,可以重写使用的表名。为此,需要在应用程序配置文件中连接名为 usersoptions 的 UsersOptionsModule,并在其配置中指定所使用的表名在 tableName 参数中。
模型可以使用中间缓存(如果 Yii 中存在缓存),这由 cacheEnabled 参数控制。示例配置
'modules' => [ 'sysoptions' => [ 'class' => SysOptionsModule::class, 'params' => [ 'tableName' => 'system_options',//используемое имя таблицы, по умолчанию 'dyd_options' 'cacheEnabled' => true//использование кеша Yii, по умолчанию false ], ... ]
类的公共参数
Connection|array|string $db = 'db'-- 已存在的数据库连接标识或新连接的配置。null|array $serializer = null-- 用于序列化存储数据的函数。如果没有设置参数,则使用标准的serialize()/unserialize()函数。可以通过闭包来重定义这些函数,例如
$options->serializer = [ 0 => function($value) {//функция для сериализации return json_encode($value); }, 1 => function(string $value) {//функция для десериализации return json_decode($value); }, ];
bool $cacheEnabled = false-- 启用中间缓存的使用。如果没有直接设置参数,则使用模块配置中cacheEnabled参数的值。string $tableName-- 模块使用的表名(只读)。
类的公共方法
get(string $option):mixed- 返回参数$option的值。set(string $option, $value):bool- 将参数$option赋值为$value。返回参数保存的成功状态。drop(string $option):bool- 删除参数$option。返回参数删除的成功状态。
以及静态方法
getStatic(string $option):mixedsetStatic(string $option, $value):booldropStatic(string $option):bool
与 get()/set()/drop() 调用类似。
许可证
GNU GPL v3.0