fetzi / flipt-php
用于集成 Flipt REST API 的 PHP 包
v0.1.0
2021-05-26 14:03 UTC
Requires
- php: ^7.4 || ^8.0
- php-http/discovery: ^1.13
- php-http/httplug: ^2.2
- psr/http-client-implementation: ^1.0
- psr/http-factory: ^1.0
- psr/http-message: ^1.0
Requires (Dev)
- ergebnis/phpstan-rules: ^0.15.3
- friendsofphp/php-cs-fixer: ^3.0
- guzzlehttp/guzzle: ^7.3
- mockery/mockery: ^1.4
- pestphp/pest: ^1.2
- php-http/mock-client: ^1.4
- phpstan/phpstan: ^0.12.88
- phpstan/phpstan-strict-rules: ^0.12.9
- thecodingmachine/phpstan-strict-rules: ^0.12.1
README
flipt-php 是一个用于封装 Flipt REST API 的小型包装包,以便能够轻松地将 Flipt 集成到您的 PHP 应用程序中。
安装
composer require fetzi/flipt-php
使用方法
Flipt
类使用 HTTPlug HTTP 客户端抽象来发送 API 请求。您需要将基本 URL 传递给静态 create
函数。其他所有内容(HttpClient
、RequestFactory
和 StreamFactory
)将自动确定。
$flipt = Flipt::create('http://localhost:8080');
通过调用 evaluate
方法,您可以检查某个用户(实体)是否应该获得某个功能。要进行评估,您需要创建包含评估数据的 EvaluateRequest
。
$evaluateRequest = new EvaluateRequest('sample-flag', 'user-id', ['foo' => 'bar']); $evaluateResponse = $flipt->evaluate($evaluateRequest); if ($evaluateResponse->isMatch()) { // awesome new feature } else { // old boring feature }
变体
为了能够确定应显示功能标志的哪个变体,您需要使用响应上的 getVariant()
方法。
EvaluateResponse
还提供了一个可以通过 getValue()
或 getVariant()
方法访问的变体
$evaluateRequest = new EvaluateRequest('sample-flag', 'user-id', ['foo' => 'bar']); $evaluateResponse = $flipt->evaluate($evaluateRequest); if ($evaluateResponse->isMatch()) { switch ($evaluateResponse->getVariant()) { case 'a': // show A variant break; case 'b': // show B variant break; } }
flipt-php 由 Johannes Pichler 创建,遵循 MIT 许可。