Flags.php
2.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
namespace BTFlags;
use BTFlags\FlagManager;
class Flags{
/**
* Retrieves the decrypted value of a flag
*
* @param string $flag Name of the flag.
* @param bool $encrypted True, if the passed $flag is an encrypted value.
* @param string $defaultValue Default value of a flag if the flag does not exist in the specified storage driver.
* @param string $driver Storage driver.
*
* @return string
*/
public static function get($flagName, $encrypted = false, $defaultValue, $driver = 'cookie'){
$flagManager = new FlagManager();
$flag = $flagManager->getFlag($flagName, $encrypted);
if(!$flag) return null;
return $flagManager->checkFlag($flag, $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null));
}
/**
* Look for the flag inside the specified storage driver.
*
* @param string $flag Name of the flag.
* @param string $defaultValue Default value of a flag if the flag does not exist in the specified storage driver.
* @param string $driver Storage driver.
*
* @return string
*/
private static function findFlagFromStorage($flag, $defaultValue, $driver){
// Cookie Driver
if($driver == 'cookie') return isset($_GET[$flag]) ? $_GET[$flag] : (isset($_COOKIE[$flag]) ? $_COOKIE[$flag] : $defaultValue);
// Session Driver
return isset($_GET[$flag]) ? $_GET[$flag] : ($_SESSION[$flag] ? $_SESSION[$flag] : $defaultValue);
}
/**
* Checks if the flag exists.
*
* @param string $flag Name of the flag.
* @param bool $encrypted True, if the passed $flag is an encrypted value.
* @param string $driver Storage driver.
*
* @return string
*/
public static function has($flagName, $encrypted = false, $driver = 'cookie'){
$flagManager = new FlagManager();
$flag = $flagManager->getFlag($flagName, $encrypted);
if(!$flag) return null;
return true;
}
}