Skip to content

Commit 29508a9

Browse files
chore: Release 3.6.1 (#219)
1 parent 04f5300 commit 29508a9

File tree

7 files changed

+53
-29
lines changed

7 files changed

+53
-29
lines changed

CHANGELOG.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Optimizely PHP SDK Changelog
22

3+
## 3.6.1
4+
November 19th, 2020
5+
6+
### Bug Fixes
7+
- Added "enabled" field to decision metadata structure. [#217](https://github.com/optimizely/php-sdk/pull/217)
8+
39
## 3.6.0
410
November 2nd, 2020
511

src/Optimizely/Event/Builder/EventBuilder.php

+6-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class EventBuilder
3838
/**
3939
* @const string Version of the Optimizely PHP SDK.
4040
*/
41-
const SDK_VERSION = '3.6.0';
41+
const SDK_VERSION = '3.6.1';
4242

4343
/**
4444
* @var string URL to send event to.
@@ -143,7 +143,7 @@ private function getCommonParams($config, $userId, $attributes)
143143
*
144144
* @return array Hash representing parameters particular to impression event.
145145
*/
146-
private function getImpressionParams(Experiment $experiment, $variation, $flagKey, $ruleKey, $ruleType)
146+
private function getImpressionParams(Experiment $experiment, $variation, $flagKey, $ruleKey, $ruleType, $enabled)
147147
{
148148
$variationKey = $variation->getKey() ? $variation->getKey() : '';
149149
$impressionParams = [
@@ -156,7 +156,8 @@ private function getImpressionParams(Experiment $experiment, $variation, $flagKe
156156
FLAG_KEY => $flagKey,
157157
RULE_KEY => $ruleKey,
158158
RULE_TYPE => $ruleType,
159-
VARIATION_KEY => $variationKey
159+
VARIATION_KEY => $variationKey,
160+
ENABLED => $enabled
160161
],
161162
]
162163
],
@@ -228,13 +229,13 @@ private function getConversionParams($eventEntity, $eventTags)
228229
*
229230
* @return LogEvent Event object to be sent to dispatcher.
230231
*/
231-
public function createImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $userId, $attributes)
232+
public function createImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $enabled, $userId, $attributes)
232233
{
233234
$eventParams = $this->getCommonParams($config, $userId, $attributes);
234235

235236
$experiment = $config->getExperimentFromKey($experimentKey);
236237
$variation = $config->getVariationFromKey($experimentKey, $variationKey);
237-
$impressionParams = $this->getImpressionParams($experiment, $variation, $flagKey, $ruleKey, $ruleType);
238+
$impressionParams = $this->getImpressionParams($experiment, $variation, $flagKey, $ruleKey, $ruleType, $enabled);
238239

239240
$eventParams[VISITORS][0][SNAPSHOTS][] = $impressionParams;
240241

src/Optimizely/Event/Builder/Params.php

+1
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,4 @@
4444
define('RULE_KEY', 'rule_key');
4545
define('RULE_TYPE', 'rule_type');
4646
define('VARIATION_KEY', 'variation_key');
47+
define('ENABLED', 'enabled');

src/Optimizely/Optimizely.php

+8-5
Original file line numberDiff line numberDiff line change
@@ -195,10 +195,10 @@ private function validateUserInputs($attributes, $eventTags = null)
195195
* @param array Associative array of user attributes
196196
* @param DatafileProjectConfig DatafileProjectConfig instance
197197
*/
198-
protected function sendImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $userId, $attributes)
198+
protected function sendImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $enabled, $userId, $attributes)
199199
{
200200
$impressionEvent = $this->_eventBuilder
201-
->createImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $userId, $attributes);
201+
->createImpressionEvent($config, $experimentKey, $variationKey, $flagKey, $ruleKey, $ruleType, $enabled, $userId, $attributes);
202202
$this->_logger->log(Logger::INFO, sprintf('Activating user "%s" in experiment "%s".', $userId, $experimentKey));
203203
$this->_logger->log(
204204
Logger::DEBUG,
@@ -274,7 +274,7 @@ public function activate($experimentKey, $userId, $attributes = null)
274274
return null;
275275
}
276276

277-
$this->sendImpressionEvent($config, $experimentKey, $variationKey, '', $experimentKey, FeatureDecision::DECITION_SOURCE_EXPERIMENT, $userId, $attributes);
277+
$this->sendImpressionEvent($config, $experimentKey, $variationKey, '', $experimentKey, FeatureDecision::DECITION_SOURCE_EXPERIMENT, true, $userId, $attributes);
278278

279279
return $variationKey;
280280
}
@@ -556,8 +556,11 @@ public function isFeatureEnabled($featureFlagKey, $userId, $attributes = null)
556556
$variation = $decision->getVariation();
557557

558558
if ($config->getSendFlagDecisions() && ($decision->getSource() == FeatureDecision::DECISION_SOURCE_ROLLOUT || !$variation)) {
559+
if ($variation) {
560+
$featureEnabled = $variation->getFeatureEnabled();
561+
}
559562
$ruleKey = $decision->getExperiment() ? $decision->getExperiment()->getKey() : '';
560-
$this->sendImpressionEvent($config, $ruleKey, $variation ? $variation->getKey() : '', $featureFlagKey, $ruleKey, $decision->getSource(), $userId, $attributes);
563+
$this->sendImpressionEvent($config, $ruleKey, $variation ? $variation->getKey() : '', $featureFlagKey, $ruleKey, $decision->getSource(), $featureEnabled, $userId, $attributes);
561564
}
562565

563566
if ($variation) {
@@ -569,7 +572,7 @@ public function isFeatureEnabled($featureFlagKey, $userId, $attributes = null)
569572
'variationKey'=> $variation->getKey()
570573
);
571574

572-
$this->sendImpressionEvent($config, $experimentKey, $variation->getKey(), $featureFlagKey, $experimentKey, $decision->getSource(), $userId, $attributes);
575+
$this->sendImpressionEvent($config, $experimentKey, $variation->getKey(), $featureFlagKey, $experimentKey, $decision->getSource(), $featureEnabled, $userId, $attributes);
573576
} else {
574577
$this->_logger->log(Logger::INFO, "The user '{$userId}' is not being experimented on Feature Flag '{$featureFlagKey}'.");
575578
}

tests/EventTests/EventBuilderTest.php

+13-2
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public function setUp()
6868
]],
6969
'revision' => '15',
7070
'client_name' => 'php-sdk',
71-
'client_version' => '3.6.0',
71+
'client_version' => '3.6.1',
7272
'anonymize_ip'=> false,
7373
'enrich_decisions' => true,
7474
];
@@ -81,7 +81,8 @@ public function setUp()
8181
'flag_key' => 'test_experiment',
8282
'rule_key' => 'test_experiment',
8383
'rule_type' => 'experiment',
84-
'variation_key'=> 'variation'
84+
'variation_key'=> 'variation',
85+
'enabled' => true
8586
]
8687
]]
8788
);
@@ -146,6 +147,7 @@ public function testCreateImpressionEventNoAttributesNoValue()
146147
'test_experiment',
147148
'test_experiment',
148149
'experiment',
150+
true,
149151
$this->testUserId,
150152
null
151153
);
@@ -205,6 +207,7 @@ public function testCreateImpressionEventWithAttributesNoValue()
205207
'test_experiment',
206208
'test_experiment',
207209
'experiment',
210+
true,
208211
$this->testUserId,
209212
$userAttributes
210213
);
@@ -245,6 +248,7 @@ public function testCreateImpressionEventWithFalseAttributesNoValue()
245248
'test_experiment',
246249
'test_experiment',
247250
'experiment',
251+
true,
248252
$this->testUserId,
249253
$userAttributes
250254
);
@@ -286,6 +290,7 @@ public function testCreateImpressionEventWithZeroAttributesNoValue()
286290
'test_experiment',
287291
'test_experiment',
288292
'experiment',
293+
true,
289294
$this->testUserId,
290295
$userAttributes
291296
);
@@ -317,6 +322,7 @@ public function testCreateImpressionEventWithInvalidAttributesNoValue()
317322
'test_experiment',
318323
'test_experiment',
319324
'experiment',
325+
true,
320326
$this->testUserId,
321327
$userAttributes
322328
);
@@ -357,6 +363,7 @@ public function testCreateImpressionEventWithUserAgentWhenBotFilteringIsEnabled(
357363
'test_experiment',
358364
'test_experiment',
359365
'experiment',
366+
true,
360367
$this->testUserId,
361368
$userAttributes
362369
);
@@ -404,6 +411,7 @@ public function testCreateImpressionEventWithInvalidAttributeTypes()
404411
'test_experiment',
405412
'test_experiment',
406413
'experiment',
414+
true,
407415
$this->testUserId,
408416
$userAttributes
409417
);
@@ -454,6 +462,7 @@ public function testCreateImpressionEventWithUserAgentWhenBotFilteringIsDisabled
454462
'test_experiment',
455463
'test_experiment',
456464
'experiment',
465+
true,
457466
$this->testUserId,
458467
$userAttributes
459468
);
@@ -500,6 +509,7 @@ public function testCreateImpressionEventWithUserAgentWhenBotFilteringIsNull()
500509
'test_experiment',
501510
'test_experiment',
502511
'experiment',
512+
true,
503513
$this->testUserId,
504514
$userAttributes
505515
);
@@ -829,6 +839,7 @@ public function testCreateImpressionEventWithBucketingIDAttribute()
829839
'test_experiment',
830840
'test_experiment',
831841
'experiment',
842+
true,
832843
$this->testUserId,
833844
$userAttributes
834845
);

0 commit comments

Comments
 (0)