1. Go to this page and download the library: Download airship/flagger 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/ */
airship / flagger example snippets
// Create an instance with an env key
$flagger = new Flagger\Flagger(new Flagger\Client\GuzzleClient('<env_key>'));
if ($flagger->flag('bitcoin-pay')->isEnabled(['id' => 5])) {
// ...
}
// Define your entity
$entity = [
'type' => 'User', // 'type' starts with a capital letter '[U]ser', '[H]ome', '[C]ar'. If omittied, it will default to 'User'
'id' => '1234', // 'id' must be a string or integer
'displayName' => '[email protected]', // must be a string. If omitted, the SDK will use the same value as 'id' (converted to a string)
];
// or
$entity = new Entity(1234, 'User', '[email protected]');
// The most compact form can be:
$entity = [
'id' => 1234
];
// or
$entity = new Entity(1234);
// as this will translate into:
$entity = [
'type' => 'User',
'id' => '1234',
'displayName' => '1234',
];
$flagger->flag('bitcoin-pay')->isEnabled($entity); // Does the entity have the feature 'bitcoin-pay'?
$flagger->flag('bitcoin-pay')->getTreatment($entity); // Get the treatment associated with the flag
$flagger->flag('bitcoin-pay')->isEligible($entity);
// Returns true if the entity can potentially receive the feature via sampling
// or is already receiving the feature.
// Note: It may take up to a minute for entities gated to show up on our web app.
// Define your entity with an attributes dictionary of key-value pairs.
// Values must be a string, a number, or a boolean. nil values are not accepted.
// For date or datetime string value, use iso8601 format.
$entity = [
'type' => 'User',
'id' => '1234',
'displayName' => '[email protected]',
'attributes' => [
't_shirt_size' => 'M',
'date_created' => '2018-02-18',
'time_converted' => '2018-02-20T21:54:00.630815+00:00',
'owns_property' => true,
'age' => 39,
],
];
// or
$entity = new Entity(
1234,
'User',
'[email protected]',
[
't_shirt_size' => 'M',
'date_created' => '2018-02-18',
'time_converted' => '2018-02-20T21:54:00.630815+00:00',
'owns_property' => true,
'age' => 39,
]
);
// Now in app.airshiphq.com, you can target this particular user using its
// attributes
// An entity can be a member of a group.
// The structure of a group entity is just like that of the base entity.
$entity = [
'type' => 'User',
'id' => '1234',
'displayName' => '[email protected]',
'attributes' => [
't_shirt_size' => 'M',
'date_created' => '2018-02-18',
'time_converted' => '2018-02-20T21:54:00.630815+00:00',
'owns_property' => true,
'age' => 39,
],
'group' => [
'type' => 'Club',
'id' => '5678',
'displayName' => 'SF Homeowners Club',
'attributes' => [
'founded' => '2016-01-01',
'active' => true,
],
],
];
// or
$group = new Entity(
5678,
'Club',
'SF Homeowners Club',
[
'founded' => '2016-01-01',
'active' => true,
]
);
$user = new Entity(
1234,
'User',
'[email protected]',
[
't_shirt_size' => 'M',
'date_created' => '2018-02-18',
'time_converted' => '2018-02-20T21:54:00.630815+00:00',
'owns_property' => true,
'age' => 39,
],
$group
);
// Inheritance of values `isEnabled`, `getTreatment`, `getPayload`, and `isEligible` works as follows:
// 1. If the group is enabled, but the base entity is not,
// then the base entity will inherit the values `isEnabled`, `getTreatment`, `getPayload`, and `isEligible` of the group entity.
// 2. If the base entity is explicitly blacklisted, then it will not inherit.
// 3. If the base entity is not given a variation in rule-based variation assignment,
// but the group is and both are enabled, then the base entity will inherit
// the variation of the group's.
// You can ask questions about the group directly (use the `is_group` flag):
$entity = [
'isGroup' => true,
'type' => 'Club',
'id' => '5678',
'displayName' => 'SF Homeowners Club',
'attributes' => [
'founded' => '2016-01-01',
'active' => true,
],
];
$flagger->flag('bitcoin-pay')->isEnabled($entity);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.