功能 / 功能
v0.2.0
2014-02-12 20:36 UTC
This package is not auto-updated.
Last update: 2024-09-14 16:08:23 UTC
README
一个简单的功能标志API,可用于切换功能。
用法
$features = new FeatureManager;
$features->setUser(new User(['id' => 1]));
$features->enable('new_calendar', function(Feature\User $user) {
return in_array($user->id, [1, 2, 5]);
});
if ($features->can('new_calendar')) {
// ...
}
通过添加检查当前用户属性的切换来启用功能。切换可以是简单的闭包或实现Toggle接口的任何实例。
存储
功能切换可以以三种方式定义
- 直接PHP - 如上所述,
- 结构化数组,
- 或从数据库。
PHP支持闭包和数组(即不是来自YAML等),文件和数据库需要预先定义切换定义。
结构化数组
$featureToggles = [
// Feature name
'view_calendar' => [
// Each toggle with it's class name and constructor arguments
['name' => 'Feature\Toggles\IPWhitelist', 'params' => ['127.0.0.1']],
// or a closure
function(Feature\User $user) {
return $user->id % 3 == 0;
},
// or a Toggle instance
new Feature\Toggles\IPWhitelist(['192.168.0.1', '192.168.0.2']),
]
];
$features = new FeatureManager;
$storage = new Feature\Storage\Structured($features, $featureToggles);
$storage->load();