PHP code example of symplify-conversion / sst-sdk-php
1. Go to this page and download the library: Download symplify-conversion/sst-sdk-php library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
symplify-conversion / sst-sdk-php example snippets
use SymplifyConversion\SSTSDK\Client as SymplifyClient;
// 1. configure the SDK and create an instance
$websiteID = getenv('SYMPLIFY_WEBSITE_ID');
$sdk = SymplifyClient::withDefaults($websiteID);
// 2. Start off with the "default" values for everyone outside the test
// and in the original variation.
// assuming $sku is from the request, and you have a $catalog service to look up prices in
$price = $catalog->getCurrentPrice($sku);
$discounts = [];
// 3. Implement your test variation code. (This i in a test project called "discount")
// `findVariation` will ensure the visitor ID is in cookies, and that the same
// visitor gets the same variation every request you test.
switch ($sdk->findVariation('discount')) {
case 'huge':
$discounts[] = 0.1; // perhaps a contrived example with this fallthrough
case 'small':
$discounts[] = 0.1;
}
// assuming renderProductPage is how you present products
renderProductPage($sku, $price, $discounts);
use GuzzleHttp\Client as HttpClient;
use GuzzleHttp\Psr7\HttpFactory;
use GuzzleHttp\HandlerStack;
use Kevinrob\GuzzleCache\Strategy\PublicCacheStrategy;
use Kevinrob\GuzzleCache\Storage\Psr16CacheStorage;
use Kevinrob\GuzzleCache\CacheMiddleware;
use Kodus\Cache\FileCache;
use SymplifyConversion\SSTSDK\Client as SymplifyClient;
use SymplifyConversion\SSTSDK\Config\ClientConfig as SymplifyClientConfig;
// 1. configure the SDK and create an instance
$websiteID = getenv('SSTSDK_WEBSITE_ID');
$cache = new Psr16CacheStorage(new FileCache('/tmp/sstsdk-examples-httpcache', 500));
$cacheMiddleware = new CacheMiddleware(new PublicCacheStrategy($cache));
$stack = HandlerStack::create();
$stack->push($cacheMiddleware, 'cache');
$clientConfig = (new SymplifyClientConfig($websiteID))
->withHttpClient(new HttpClient(['handler' => $stack]))
->withHttpRequests(new HttpFactory());
$sdk = new SymplifyClient($clientConfig);
// the constructor does not load config automatically
$sdk->loadConfig();
// steps 2 and 3 are the same as in the previous example
use SymplifyConversion\SSTSDK\Client as SymplifyClient;
use SymplifyConversion\SSTSDK\Cookies\DefaultCookieJar;
$websiteID = "4711";
$cookieDomain = getenv('SSTSDK_COOKIE_DOMAIN');
$client = SymplifyClient::withDefaults($websiteID);
$cookieJar = new DefaultCookieJar($cookieDomain);
foreach ($client->listProjects() as $projectName) {
echo " * $projectName" . PHP_EOL;
$variationName = $client->findVariation($projectName, [], $cookieJar);
echo " - assigned variation: " . $variationName . PHP_EOL;
}
// fictional helper function to get discounts for each request we serve
function getDiscounts($sdk) {
// This code assumes you have a `lookupGeoIP` helper function in your project.
$customAttributes = array('country' => lookupGeoIp($usersIPAddress)->getCountry());
// Custom attributes are passed as an array of key/value pairs, in this case we set 'country'
// and assume the audience is configured with the "string-attribute" rule to look for specific countries.
$gotVariation = $sdk->findVariation('Discounts, May 2022', $customAttributes);
switch ($gotVariation) {
case 'huge':
return [0.25];
case 'small':
return [0.1];
}
// `findVariation` returns null if the project audience does not match for
// a given request. We handle that by a fallthrough return here.
return [];
}
composer
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.