ocus / laravel-launchdarkly
laravel的launchdarkly/server-sdk包的包装。
2.1.0
2023-11-13 11:09 UTC
Requires
- php: ^8.2
- ext-json: *
- illuminate/contracts: ^10.14
- launchdarkly/server-sdk: ^6.0
- spatie/laravel-package-tools: ^1.15
Requires (Dev)
- nunomaduro/collision: ^7.6
- nunomaduro/larastan: ^2.6
- orchestra/testbench: ^8.5
- pestphp/pest: ^2.8
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- phpunit/phpunit: ^10.2
README
此包为Laravel生态系统中的LaunchDarkly PHP SDK提供支持,便于框架使用。它包括门面,可以在您的代码中使用。还包括内存模拟,以帮助您进行测试。
安装
您可以通过composer安装此包
composer require ocus/laravel-launchdarkly
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Ocus\LaravelLaunchDarkly\LaravelLaunchDarklyServiceProvider" --tag="launchdarkly-config"
您可以在.env
文件中添加LaunchDarkly SDK密钥
LAUNCH_DARKLY_SDK_KEY="sdk-<your-sdk-key>"
使用方法
首先,您需要在您想用作LaunchDarkly用户的模型中实现Ocus\LaravelLaunchDarkly\Contracts\IsLaunchDarklyUser
接口。
/**
* @return LDUser
*
* @see \LaunchDarkly\LDUserBuilder
* @link https://docs.launchdarkly.com/sdk/features/user-config#php
*/
public function getLaunchDarklyUserAttribute(): \LaunchDarkly\LDUser
{
return (new \LaunchDarkly\LDUserBuilder($this->getKey()))
->secondary(self::class)
->email($this->email)
->name($this->name)
->build();
}
在代码中
use Ocus\LaravelLaunchDarkly\Facades\LaunchDarkly;
// Will return what you setup on your LaunchDarkly dashboard
LaunchDarkly::variation('your.flag.key', $user->launch_darkly_user);
在路由中
您可以在路由定义中使用launch-darkly
中间件
Route::middleware('launch-darkly:my-key,my-value')->get('/my-route', ...);
支持所有值类型,除了json。
在测试中
use Ocus\LaravelLaunchDarkly\Facades\LaunchDarkly;
// Fake the LaunchDarkly feature requester with a in memory one
LaunchDarkly::fake();
// Add a value for a given flag key
LaunchDarkly::addFlagValue('your.flag.key', true);
// Will return true
LaunchDarkly::variation('your.flag.key', $user->launch_darkly_user);
测试
composer test
许可证
Apache许可证(Apache 2.0)。请参阅许可证文件获取更多信息。