PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-constants / src / class-constants.php
jetpack / jetpack_vendor / automattic / jetpack-constants / src Last commit date
class-constants.php 2 years ago
class-constants.php
125 lines
1 <?php
2 /**
3 * A constants manager for Jetpack.
4 *
5 * @package automattic/jetpack-constants
6 */
7
8 namespace Automattic\Jetpack;
9
10 /**
11 * Class Automattic\Jetpack\Constants
12 *
13 * Testing constants is hard. Once you define a constant, it's defined. Constants Manager is an
14 * abstraction layer so that unit tests can set "constants" for tests.
15 *
16 * To test your code, you'll need to swap out `defined( 'CONSTANT' )` with `Automattic\Jetpack\Constants::is_defined( 'CONSTANT' )`
17 * and replace `CONSTANT` with `Automattic\Jetpack\Constants::get_constant( 'CONSTANT' )`. Then in the unit test, you can set the
18 * constant with `Automattic\Jetpack\Constants::set_constant( 'CONSTANT', $value )` and then clean up after each test with something like
19 * this:
20 *
21 * function tearDown() {
22 * Automattic\Jetpack\Constants::clear_constants();
23 * }
24 */
25 class Constants {
26 /**
27 * A container for all defined constants.
28 *
29 * @access public
30 * @static
31 *
32 * @var array
33 */
34 public static $set_constants = array();
35
36 /**
37 * Checks if a "constant" has been set in constants Manager
38 * and has a truthy value (e.g. not null, not false, not 0, any string).
39 *
40 * @param string $name The name of the constant.
41 *
42 * @return bool
43 */
44 public static function is_true( $name ) {
45 return self::is_defined( $name ) && self::get_constant( $name );
46 }
47
48 /**
49 * Checks if a "constant" has been set in constants Manager, and if not,
50 * checks if the constant was defined with define( 'name', 'value ).
51 *
52 * @param string $name The name of the constant.
53 *
54 * @return bool
55 */
56 public static function is_defined( $name ) {
57 return array_key_exists( $name, self::$set_constants )
58 ? true
59 : defined( $name );
60 }
61
62 /**
63 * Attempts to retrieve the "constant" from constants Manager, and if it hasn't been set,
64 * then attempts to get the constant with the constant() function. If that also hasn't
65 * been set, attempts to get a value from filters.
66 *
67 * @param string $name The name of the constant.
68 *
69 * @return mixed null if the constant does not exist or the value of the constant.
70 */
71 public static function get_constant( $name ) {
72 if ( array_key_exists( $name, self::$set_constants ) ) {
73 return self::$set_constants[ $name ];
74 }
75
76 if ( defined( $name ) ) {
77 return constant( $name );
78 }
79
80 /**
81 * Filters the value of the constant.
82 *
83 * @since 1.2.0
84 *
85 * @param null The constant value to be filtered. The default is null.
86 * @param String $name The constant name.
87 */
88 return apply_filters( 'jetpack_constant_default_value', null, $name );
89 }
90
91 /**
92 * Sets the value of the "constant" within constants Manager.
93 *
94 * @param string $name The name of the constant.
95 * @param int|float|string|bool|array|null $value The value of the constant.
96 */
97 public static function set_constant( $name, $value ) {
98 self::$set_constants[ $name ] = $value;
99 }
100
101 /**
102 * Will unset a "constant" from constants Manager if the constant exists.
103 *
104 * @param string $name The name of the constant.
105 *
106 * @return bool Whether the constant was removed.
107 */
108 public static function clear_single_constant( $name ) {
109 if ( ! array_key_exists( $name, self::$set_constants ) ) {
110 return false;
111 }
112
113 unset( self::$set_constants[ $name ] );
114
115 return true;
116 }
117
118 /**
119 * Resets all of the constants within constants Manager.
120 */
121 public static function clear_constants() {
122 self::$set_constants = array();
123 }
124 }
125