optimizely / optimizely-sdk
Optimizely PHP SDK,用于Optimizely功能实验、Optimizely全栈(旧版)和Optimizely Rollouts
Requires
- php: >=8.1
- guzzlehttp/guzzle: >=6.2
- justinrainbow/json-schema: ^1.6 || ^2.0 || ^4.0 || ^5.0
- lastguest/murmurhash: ^1.3.0
- monolog/monolog: >=1.21
Requires (Dev)
- icecave/parity: ^3.0.1
- php-coveralls/php-coveralls: v2.5.3
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: 3.7
- dev-master
- 4.0.1
- 4.0.0
- 3.x-dev
- 3.10.0
- 3.9.4
- 3.9.3.x-dev
- 3.9.3
- 3.9.2
- 3.9.1
- 3.9.0
- 3.8.0
- 3.7.1
- 3.7.0
- 3.6.x-dev
- 3.6.1
- 3.6.0
- 3.5.x-dev
- 3.5.0
- 3.4.x-dev
- 3.4.0
- 3.3.x-dev
- 3.3.1
- 3.3.0
- 3.2.x-dev
- 3.2.0
- 3.1.x-dev
- 3.1.0
- 3.0.1
- 3.0.0
- 2.2.x-dev
- 2.2.1
- 2.2.0
- 2.1.x-dev
- 2.1.0
- 2.0.x-dev
- 2.0.1
- 2.0.0
- 2.0.0-beta1
- 1.5.x-dev
- 1.5.0
- 1.4.0
- 1.3.x-dev
- 1.3.0
- 1.2.x-dev
- 1.2.0
- 1.1.x-dev
- 1.1.1
- 1.1.0
- 1.0.1
- 1.0.0
- 0.1.0
- dev-mke
- dev-sohail/prep_3.9.2
- dev-uzair/changelogs
- dev-pr-253
- dev-uzair/test-with-fsc
- dev-mnoman/gitAction
- dev-pr-243
- dev-pr-242
- dev-sohail/test
- dev-uzair/experiment-map-deprecation
- dev-yasir/config-v2
- dev-zeeshan/decide-api
- dev-pr/211
This package is not auto-updated.
Last update: 2024-09-24 01:51:19 UTC
README
此存储库包含用于与Optimizely功能实验和Optimizely全栈(旧版)一起使用的PHP SDK。
Optimizely功能实验是一款A/B测试和功能管理工具,适用于产品开发团队,使您可以在每个步骤进行实验。使用Optimizely功能实验可以让您的路线图上的每个功能都成为发现隐藏洞察的机会。了解更多信息请访问 Optimizely.com,或查看 开发者文档。
Optimizely Rollouts是面向开发团队的无偿功能标志。您可以在任何应用程序中轻松推出和回滚功能,无需代码部署,从而降低路线图上每个功能的风险。
开始使用
有关使用SDK的详细说明,请参阅 PHP SDK的开发者文档。
要求
要访问Optimizely仪表板中的功能管理配置,请联系您的Optimizely账户执行。
SDK版本4.0.0需要PHP8+。SDK版本3需要PHP5.5+至PHP7。
安装SDK
Optimizely PHP SDK可以通过 Composer 安装。请使用以下命令
php composer.phar require optimizely/optimizely-sdk
使用PHP SDK
初始化
创建Optimizely客户端,例如
<?php use Optimizely\Optimizely; $optimizely = new Optimizely(<<DATAFILE>>);
或者您也可以使用OptimizelyFactory方法,通过您的SDK密钥、可选的回退数据文件和可选的数据文件访问令牌创建Optimizely客户端。使用此方法内部创建HTTPProjectConfigManager。有关更多信息,请参阅 HTTPProjectConfigManager。
<?php use Optimizely\OptimizelyFactory; $optimizelyClient = OptimizelyFactory::createDefaultInstance( "your-sdk-key", <<DATAFILE>>, <<DATAFILE_AUTH_TOKEN>> );
要访问您的HTTPProjectConfigManager
<?php use Optimizely\Optimizely; /** @var Optimizely $optimizelyClient */ $configManager = $optimizelyClient->configManager;
或者您也可以在构造函数中提供一个 ProjectConfigManagerInterface
的实现
<?php use Optimizely\Optimizely; use Optimizely\ProjectConfigManager\HTTPProjectConfigManager; $configManager = new HTTPProjectConfigManager(<<SDK_KEY>>); $optimizely = new Optimizely( <<DATAFILE>>, null, null, null, false, null, $configManager );
ProjectConfigManagerInterface
ProjectConfigManagerInterface
提供了 getConfig
方法来检索 ProjectConfig
实例。
HTTPProjectConfigManager
HTTPProjectConfigManager
是 ProjectConfigManagerInterface
接口的一个实现。
fetch
方法向配置的URL发出阻塞HTTP GET请求以下载项目数据文件并初始化ProjectConfig实例。
调用 fetch
将更新将通过 getConfig
返回的内部ProjectConfig实例。
使用HTTPProjectConfigManager
<?php use Optimizely\ProjectConfigManager\HTTPProjectConfigManager; $configManager = new HTTPProjectConfigManager(<<SDK_KEY>>);
SDK密钥
Optimizely项目SDK密钥;除非覆盖了源URL,否则是必需的。
每当获取新的数据文件并更新ProjectConfig时,都会触发通知。要订阅这些通知,请使用 $notificationCenter->addNotificationListener(NotificationType::OPTIMIZELY_CONFIG_UPDATE, $updateCallback)
。
SDK开发
单元测试
您可以使用以下命令运行所有单元测试
./vendor/bin/phpunit
贡献
请参阅CONTRIBUTING。
其他Optimizely SDK
-
Flutter - https://github.com/optimizely/optimizely-flutter-sdk
-
JavaScript - https://github.com/optimizely/javascript-sdk