okdewit / optimizely-php-sdk
Optimizely SDK 用于全栈 PHP 项目。
Requires
- php: >=5.5
- guzzlehttp/guzzle: ~6.2|~7.0
- justinrainbow/json-schema: ^1.6 || ^2.0 || ^4.0 || ^5.0
- lastguest/murmurhash: 1.3.0
- monolog/monolog: ^1.21|^2.0.0
Requires (Dev)
- icecave/parity: ^1.0 || ^2.0
- php-coveralls/php-coveralls: v2.3.0
- phpunit/phpunit: ^4.8|^5.0
- squizlabs/php_codesniffer: 3.*
- dev-master
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.x-dev
- 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-patch-1
- dev-yasir/sem-ver
- dev-pr/211
- dev-oakbani/test-php-5.3
- dev-oakbani/toString-methods
- dev-oakbani/make-logging-psr3-compliant
- dev-oakbani/generate-md-docs
This package is auto-updated.
Last update: 2024-08-29 05:43:30 UTC
README
这是一个分支仓库,与 Packagist 上的主流 Optimizely SDK 独立发布。它被标记为新的主版本 v4.0.0,并依赖于 Monolog v2.0.0 以解决 Laravel 7 和 8 与 Monolog v1.0.0 的冲突,后者无法使用 Monolog v1.0.0。
Optimizely PHP SDK
此仓库包含用于与 Optimizely Full Stack 和 Optimizely Rollouts 一起使用的 PHP SDK。
Optimizely Full Stack 是为产品开发团队提供的 A/B 测试和功能标志管理。在任何应用程序中进行实验。让您的路线图上的每个功能都成为学习的机会。更多信息请访问 https://www.optimizely.com/platform/full-stack/,或查看 文档。
Optimizely Rollouts 是为开发团队提供的免费功能标志。在任何应用程序中轻松推出和回滚功能,无需代码部署。减轻您路线图上每个功能的潜在风险。更多信息请访问 https://www.optimizely.com/rollouts/,或查看 文档。
入门指南
安装 SDK
Optimizely PHP SDK 可以通过 Composer 安装。请使用以下命令
php composer.phar require optimizely/optimizely-sdk
功能管理访问
要访问 Optimizely 仪表板中的功能管理配置,请联系您的 Optimizely 账户经理。
使用 SDK
初始化
创建 Optimizely 客户端,例如
$optimizely = new Optimizely(<<DATAFILE>>);
或者您也可以使用 OptimizelyFactory 方法创建一个 Optimizely 客户端,使用您的 SDK 密钥、可选的回退数据文件和可选的数据文件访问令牌。使用此方法内部创建 HTTPProjectConfigManager。有关更多详细信息,请参阅 HTTPProjectConfigManager。
$optimizelyClient = OptimizelyFactory::createDefaultInstance("your-sdk-key", <<DATAFILE>>, <<DATAFILE_AUTH_TOKEN>>);
要访问您的 HTTPProjectConfigManager
$configManager = $optimizelyClient->configManager;
或者您也可以在构造函数中提供 ProjectConfigManagerInterface
的实现
$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
将更新内部 ProjectConfig 实例,该实例将由 getConfig
返回。
使用 HTTPProjectConfigManager
$configManager = new HTTPProjectConfigManager(<<SDK_KEY>>);
SDK 密钥
Optimizely 项目 SDK 密钥;除非覆盖源 URL,否则是必需的。
每当获取新的数据文件并更新 ProjectConfig 时,都会触发通知。要订阅这些通知,请使用 $notificationCenter->addNotificationListener(NotificationType::OPTIMIZELY_CONFIG_UPDATE, $updateCallback)
。
文档
查看Optimizely Full Stack的开发者文档,了解如何设置第一个Full Stack项目并使用SDK。
开发
单元测试
运行所有测试
您可以使用以下命令运行所有单元测试:
./vendor/bin/phpunit
贡献
请参阅贡献指南。