pozitronik/yii2-options

服务器端选项存储

安装次数: 3,189

依赖: 0

建议者: 0

安全性: 0

星星: 0

关注者: 2

分支: 0

开放问题: 1

类型:yii2-extension

1.1.0 2023-04-18 17:39 UTC

This package is auto-updated.

Last update: 2024-09-18 21:14:58 UTC


README

在服务器上存储系统设置。

Build Status

安装

推荐通过 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):mixed
  • setStatic(string $option, $value):bool
  • dropStatic(string $option):bool

get()/set()/drop() 调用类似。

许可证

GNU GPL v3.0