icecave / flip
一个用于处理严格布尔值集合的小型库。
0.2.0
2015-11-19 22:21 UTC
Requires
- php: >=5.5
Requires (Dev)
- icecave/archer: ~1
This package is auto-updated.
Last update: 2024-09-06 11:26:38 UTC
README
Flip是一个用于处理严格布尔值集合的微型PHP库。
- 通过Composer包icecave/flip安装
- 阅读API文档
定义标志集
标志集描述了给定类型的可用标志。标志集通过声明一个使用FlagSetTrait
特质的类来定义。
类中的每个属性定义一个命名的标志,可以设置为true
或false
。所有属性都必须是私有的,并具有默认的布尔值。
use Icecave\Flip\FlagSetTrait; final class ExampleFlags { use FlagSetTrait; private $foo = true; private $bar = false; private $baz = false; }
创建标志集
标志集特质提供以下静态方法,以便快速创建常见的集合
defaults()
- 创建一个所有标志都设置为默认值的标志集all()
- 创建一个所有标志都设置为true
的标志集none()
- 创建一个所有标志都设置为false
的标志集
标志集也可以通过流畅接口创建和修改。下面的示例创建一个只有bar
和baz
属性设置为true
的标志集。
$flags = ExampleFlags::none() ->bar(true) ->baz(true);
省略对defaults()
、all()
或none()
的初始调用是使用默认值的快捷方式。这意味着以下两个示例是等效的
$flags = ExampleFlags::defaults() ->foo(false) ->bar(true);
$flags = ExampleFlags ::foo(false) ->bar(true);
标志集是不可变的,每次调用流畅接口都会返回一个新的实例,其中包含更新的标志值。
标志不能命名为"defaults"、"all"或"none"。
使用标志集
接受标志集作为参数的函数可以使用类型提示。标志使用常规PHP属性表示法读取。保证标志值是布尔值。
function dumpFlags(ExampleFlags $flags) { if ($flags->foo) { echo 'Foo is enabled!'; } else { echo 'Foo is disabled!'; } if ($flags->bar) { echo 'Bar is enabled!'; } else { echo 'Bar is disabled!'; } if ($flags->baz) { echo 'Baz is enabled!'; } else { echo 'Baz is disabled!'; } }
无法使用属性表示法设置标志。
联系我们
- 关注@IcecaveStudios在Twitter上
- 访问Icecave Studios网站