Changes that have landed in master but are not yet released.
- fix(whitelisting): Whitelisted variation should continue when no valid variation is found. (#123)
- refac: Renames notification-center methods. (#120)
- fix: Validate Inputs for activate/track/getVariation. (#105)
November 14th, 2018
- fix(generateBucketValue): Avoid negative bucket number for PHP x86. (#137)
- fix(phpdoc-notification-callback): Fixes phpdoc primitive type of notification-callback. (#135)
October 29th, 2018
- feat(isValid): Adds getter to access isValid attribute. (#128)
- fix(datafile-parsing): Prevent newer versions datafile. (#127)
- fix: Updating dependencies. (#125)
- fix(track): Send decisions for all experiments using an event when using track. (#124)
June 29th, 2018
- Introduces support for bot filtering (#110).
June 19th, 2018
- Fix: send impression event for Feature Test when Feature is disabled (#114).
April 12th, 2018
This major release introduces APIs for Feature Management. It also introduces some breaking changes listed below.
- Introduced the
isFeatureEnabled
API to determine whether to show a feature to a user or not.
$isEnabled = $optimizelyClient->isFeatureEnabled('my_feature_key', 'my_user', $userAttributes);
- You can also get all the enabled features for the user by calling:
$enabledFeatures = $optimizelyClient->getEnabledFeatures('my_user', $userAttributes);
- Introduced Feature Variables to configure or parameterize a feature. There are four variable types:
String
,Integer
,Double
,Boolean
.
$stringVariable = $optimizelyClient->getFeatureVariableString('my_feature_key', 'string_variable_key', 'my_user');
$integerVariable = $optimizelyClient->getFeatureVariableInteger('my_feature_key', 'integer_variable_key', 'my_user');
$doubleVariable = $optimizelyClient->getFeatureVariableDouble('my_feature_key', 'double_variable_key', 'my_user');
$booleanVariable = $optimizelyClient->getFeatureVariableBoolean('my_feature_key', 'boolean_variable_key', 'my_user');
- The
track
API with revenue value as a stand-alone parameter has been removed. The revenue value should be passed in as an entry in the event tags dict. The key for the revenue tag isrevenue
and the passed in value will be treated by Optimizely as the value for computing results.
$eventTags = ['revenue' => 4200];
$optimizelyClient->track('event_key', 'user_id', $userAttributes, $eventTags);
May 29th, 2018
This beta release introduces APIs for Feature Management. It also introduces some breaking changes listed below.
- Introduced the
isFeatureEnabled
API to determine whether to show a feature to a user or not.
$isEnabled = $optimizelyClient->isFeatureEnabled('my_feature_key', 'my_user', $userAttributes);
- You can also get all the enabled features for the user by calling:
$enabledFeatures = $optimizelyClient->getEnabledFeatures('my_user', $userAttributes);
- Introduced Feature Variables to configure or parameterize a feature. There are four variable types:
String
,Integer
,Double
,Boolean
.
$stringVariable = $optimizelyClient->getFeatureVariableString('my_feature_key', 'string_variable_key', 'my_user');
$integerVariable = $optimizelyClient->getFeatureVariableInteger('my_feature_key', 'integer_variable_key', 'my_user');
$doubleVariable = $optimizelyClient->getFeatureVariableDouble('my_feature_key', 'double_variable_key', 'my_user');
$booleanVariable = $optimizelyClient->getFeatureVariableBoolean('my_feature_key', 'boolean_variable_key', 'my_user');
- The
track
API with revenue value as a stand-alone parameter has been removed. The revenue value should be passed in as an entry in the event tags dict. The key for the revenue tag isrevenue
and the passed in value will be treated by Optimizely as the value for computing results.
$eventTags = ['revenue' => 4200];
$optimizelyClient->track('event_key', 'user_id', $userAttributes, $eventTags);
- Added support for notification listeners.
- Added support for IP anonymization.
- Added support for Numeric Metrics.
- Switched to new event API.
- Added the forced bucketing feature, which allows customers to force users into variations in real time for QA purposes without requiring datafile downloads from the network. The following APIs are introduced:
/**
* Force a user into a variation for a given experiment.
*
* @param $experimentKey string Key identifying the experiment.
* @param $userId string The user ID to be used for bucketing.
* @param $variationKey string The variation key specifies the variation which the user
* will be forced into. If null, then clear the existing experiment-to-variation mapping.
*
* @return boolean A boolean value that indicates if the set completed successfully.
*/
public function setForcedVariation($experimentKey, $userId, $variationKey);
/**
* Gets the forced variation for a given user and experiment.
*
* @param $experimentKey string Key identifying the experiment.
* @param $userId string The user ID to be used for bucketing.
*
* @return string|null The forced variation key.
*/
public function getForcedVariation($experimentKey, $userId);
- Added the bucketing ID feature allows decoupling bucketing from user identification so that a group of users that have the same bucketing ID are put into the same variation.
- Add user profile service.
- Updated datafile parsing to be able to handle additional fields.
- Updated to send datafile revision information in log events.
- Gracefully handle empty entity IDs.
- Added event tags to track API to allow users to pass in event metadata.
- Deprecated the
eventValue
parameter from the track method. Should useeventTags
to pass in event value instead. - Relaxed restriction on monolog package.
- Updated to support more versions of json-schema package.
- General release of Optimizely X Full Stack PHP SDK. No breaking changes from previous version.
- Introduced curl based event dispatcher.
- Beta release of the Optimizely X Full Stack PHP SDK.