gksh / bitmask
PHP 的 bitmask 值对象
v0.0.1
2024-05-03 19:20 UTC
Requires
- php: ^8.2.0
Requires (Dev)
- laravel/pint: ^1.13.7
- pestphp/pest: ^2.28.1
- phpstan/phpstan: ^1.10.50
- rector/rector: ^0.19.8
- symfony/var-dumper: ^6.4.0|^7.0.0
README
gksh/bitmask
在 PHP 中使用 bitmask 和位运算的简单方法。
安装
需要 PHP 8.2+
composer require gksh/bitmask
🧪 使用
通过 bitmask 将布尔选项编码为简单的整数,以简化标志处理。
请参阅 ide.php 以获取完整示例和更多内容,请参阅 playground。
enum Panel: int { case Project = 1; case Terminal = 2; case SourceControl = 4; case Extensions = 8; } class Panels extends TinyBitmask { public function isVisible(Panel $panel): bool { return $this->has($panel->value); } public function togglePanel(Panel $panel): Panels { return $this->toggle($panel->value); } } class Ide { public Panels $panels; public function togglePanel(Panel $panel): self { $this->panels->togglePanel($panel); return $this; } } $ide = (new Ide()) ->togglePanel(Panel::Project) ->togglePanel(Panel::Terminal); $ide->panels->isVisible(Panel::Terminal); // true $ide->panels->isVisible(Panel::Extensions); // false
测试
composer test
变更日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。