jrmadsen67 / mahana-bitmask
位掩码管理设置
v1.0.0
2016-09-27 06:31 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-09-08 13:39:11 UTC
README
位掩码管理设置。而不是在每张表中都有几十个标志,位掩码可以将它们减少到单个整数值。
安装
composer require jrmadsen67/mahana-bitmask
使用方法
通常我们会与MVC模型类结合使用,所以我会以这个场景为例。
MahanaBitfield是一个抽象类,因此你将为每个想要设置的设置字段创建一个简单的继承类。
这意味着如果你有一个用户表,并想在字段中存储settings
,你可以创建一个类似下面的示例类
use jrmadsen67\MahanaBitfield\MahanaBitfield;
class UserSettings extends MahanaBitfield
{
public $flags = [
'flag1' => 0,
'flag2' => 1,
'flag3' => 2,
];
}
请注意,这并不直接与你的模型一起使用;你将不得不以正常的方式在你的框架或代码中自己获取/设置settings
字段。
初始化一个类
$mbf = new UserSettings;
设置特定的标志为true/false
$mbf->flag1 = true;
获取特定的设置值
$flag1 = $mbf->flag1;
获取位掩码值
$settings = $mbf->getValue();
使用setFlags() & getFlags() 一次处理整个数组
$userSettings = new UserSettings;
$userSettings->setFlags([
'flag2' => true,
'flag3' => true,
]);
或者
$setting_array = $userSettings->getFlags();
/*
var_dump($setting_array);
array(
'flag2' => true,
'flag3' => true,
);
*/
测试可以为你提供更多示例。欢迎提问和PR!