amplitude/experiment-php-server

Amplitude Experiment Server SDK for PHP

1.0.0 2024-04-02 23:30 UTC

README

68747470733a2f2f7374617469632e616d706c69747564652e636f6d2f6c696768746e696e672f343663383562666439313930356465383034376631656536356337633933643666613965653665612f7374617469632f6d656469612f616d706c69747564652d6c6f676f2d776974682d746578742e34666239653436332e737667

Experiment PHP SDK

Amplitude PHP Server SDK for Experiment.

Installation

composer require amplitude/experiment-php-server

Remote Evaluation Quick Start

<?php
// (1) Initialize the experiment client
$experiment = new \AmplitudeExperiment\Experiment();
$client = $experiment->initializeRemote('<DEPLOYMENT_KEY>')

// (2) Fetch variants for a user
$user = \AmplitudeExperiment\User::builder()
    ->deviceId('abcdefg')
    ->userId('user@company.com')
    ->userProperties(['premium' => True])
    ->build();

$variants = $client->fetch($user);

// (3) Access a flag's variant
$variant = $variants['FLAG_KEY'] ?? null;
if ($variant) {
    if ($variant->value == 'on') {
        // Flag is on
    } else {
        // Flag is off
    }
}

Local Evaluation Quick Start

<?php
// (1) Initialize the experiment client
$experiment = new \AmplitudeExperiment\Experiment();
$client = $experiment->initializeLocal('<DEPLOYMENT_KEY>');

// (2) Fetch latest flag configurations for the local evaluation client.
$client->refreshFlagConfigs();

// (3) Evaluate a user.
$user = \AmplitudeExperiment\User::builder()
    ->deviceId('abcdefg')
    ->userId('user@company.com')
    ->userProperties(['premium' => true]) 
    ->build();

// Evaluate all flag variants
$allVariants = $client->evaluate($user);

// Evaluate a specific subset of flag variants
$specificVariants = $client->evaluate($user, [
  'my-local-flag-1',
  'my-local-flag-2',
]);

// (4) Access a flag's variant
$variant = $allVariants['FLAG_KEY'] ?? null;
if ($variant) {
    if ($variant->value == 'on') {
        // Flag is on
    } else {
        // Flag is off
    }
}

More Information

Please visit our Developer Center for more instructions on using our the SDK.

Need Help?

If you have any problems or issues over our SDK, feel free to create a GitHub issue or submit a request on Amplitude Help.