icecave/flip
Composer 安装命令:
composer require icecave/flip
包简介
A tiny library for working with strict sets of boolean values.
README 文档
README
Flip is a tiny PHP library for working with strict sets of boolean flags.
- Install via Composer package icecave/flip
- Read the API documentation
Defining a flag-set
A flag-set describes the available flags of a given type. Flag-sets are defined
by declaring a class that uses the FlagSetTrait trait.
Each property in the class defines a named flag that can be set to true or
false. All properties must be private and have a default boolean value.
use Icecave\Flip\FlagSetTrait; final class ExampleFlags { use FlagSetTrait; private $foo = true; private $bar = false; private $baz = false; }
Creating a flag-set
The flag-set trait provides the following static methods for quickly creating common sets:
defaults()- creates a flag-set where all flags are set to the default valuesall()- creates a flag-set where all flags are set totruenone()- creates a flag-set where all flags are set tofalse
Flag-sets can also be created and modified using a fluent interface. The example
below creates a flag-set with only the bar and baz properties set to true.
$flags = ExampleFlags::none() ->bar(true) ->baz(true);
Omitting the initial call to defaults(), all() or none() is short-hand
for using the defaults. This means that the following two examples are equivalent:
$flags = ExampleFlags::defaults() ->foo(false) ->bar(true);
$flags = ExampleFlags ::foo(false) ->bar(true);
Flag-sets are immutable, each call to the fluent interface returns a new instance with the updated flag value.
Flags can not be named "defaults", "all" or "none".
Using a flag-set
Functions that accept flag-sets as parameters can use a type-hint. Flags are read using the regular PHP property notation. Flag values are guaranteed to be a boolean.
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!'; } }
It is not possible to set flags using the property notation.
Contact us
- Follow @IcecaveStudios on Twitter
- Visit the Icecave Studios website
icecave/flip 适用场景与选型建议
icecave/flip 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 523 次下载、GitHub Stars 达 2, 最近一次更新时间为 2015 年 10 月 07 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「enum」 「set」 「bit」 「option」 「flag」 「field」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 icecave/flip 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 icecave/flip 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 icecave/flip 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Simple, immutable data structures
Enum type behavior for Yii2 based on class constants
A PHP Abstract Enum Class
Compatibility layer for emulating enumerations in PHP < 8.1 and native enumerations in PHP >= 8.1
Baum is an implementation of the Nested Set pattern for Eloquent models.
Enum type behavior and helper for Yii2, for PostgreSQL only
统计信息
- 总下载量: 523
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 25
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2015-10-07