设置通知侦听器
2023年5月11日大约 1 分钟
设置通知侦听器
本主题介绍如何为云眼灰度标帜(Feature Flag)AB实验 php SDK 设置和删除通知侦听器。
通知侦听器触发您在 SDK 中触发某些操作时定义的回调函数。
最常见的用例是将所有灰度标帜(Feature Flag)决策的流发送到分析提供商或内部数据仓库,以将其与您拥有的有关用户的其他数据联接。
通知侦听器类型
有关通知侦听器类型和用例的更多信息,请参阅通知侦听器。
有关代码示例,请参阅以下部分。
添加和删除所有通知侦听器
下面的示例代码演示如何添加侦听器、删除侦听器、删除特定类型的所有侦听器(例如所有决策侦听器)以及删除所有侦听器。
php
use eyeofcloud\Notification\NotificationType;
// Remove Notification Listener
$optimizelyClient->notificationCenter->removeNotificationListener($notificationId);
// Remove all Notification Listeners
$optimizelyClient->notificationCenter->clearAllNotificationListeners();
// Remove all Notification Listeners of a certain type
$optimizelyClient->notificationCenter->clearNotificationListeners(NotificationType::DECISION);
设置每种类型的通知侦听器
下面的示例代码演示如何设置每种类型的通知侦听器。
php
import com.eyeofcloud.ab.notification.*;
// import your third-party analytics integration here
// import your third-party analytics integration here
#######################################
# SET UP ACTIVATE NOTIFICATION LISTENER
#######################################
public function onActivate($experiment, $userId, $attributes, $variation) {
}
$optimizelyClient->notificationCenter->addNotificationListener(
NotificationType::ACTIVATE,
'onActivate'
);
#######################################
# SET UP DECISION NOTIFICATION LISTENER
#######################################
public function onDecision($type, $userId, $attributes, $decisionInfo) {
}
$optimizelyClient->notificationCenter->addNotificationListener(
NotificationType::DECISION,
'onDecision'
);
#######################################
# SET UP OPTIMIZELY CONFIG NOTIFICATION LISTENER
#######################################
// listen to OPTIMIZELY_CONFIG_UPDATE to get updated data
public function onConfigUpdate() {
}
$optimizelyClient->notificationCenter->addNotificationListener(
NotificationType::OPTIMIZELY_CONFIG_UPDATE,
'onConfigUpdate'
);
#######################################
# SET UP TRACK LISTENER
#######################################
public function onTrack($eventKey, $userId, $attributes, $eventTags, $event) {
}
$optimizelyClient->notificationCenter->addNotificationListener(
NotificationType::TRACK,
'onTrack'
);