Completed
Push — develop ( 855d70...ee0c5e )
by David
01:36
created
src/classes/features/class-response-adapter.php 1 patch
Indentation   +103 added lines, -103 removed lines patch added patch discarded remove patch
@@ -3,108 +3,108 @@
 block discarded – undo
3 3
 namespace Wordlift\Features;
4 4
 
5 5
 class Response_Adapter {
6
-	const WL_FEATURES = '_wl_features';
7
-	const WL_1        = 'wl1';
8
-
9
-	public function __construct() {
10
-
11
-		// Filter responses from the API calls to update the enabled features.
12
-		add_filter( 'wl_api_service__response', array( $this, 'response' ), 10, 1 );
13
-
14
-		// Initialize from `$_ENV`: this is currently required for Unit Tests, since `tests/bootstrap.php` loads WordLift
15
-		// before it can actually query the enabled features via HTTP (mock), which would prevent files from being included.
16
-		// $this->init_from_env();
17
-
18
-		// Register the `wl_features__enable__{feature-name}` filters.
19
-		$this->register_filters();
20
-
21
-		// Hook to the updates to the features setting to refresh the features' filters.
22
-		add_action( 'update_option_' . self::WL_FEATURES, array( $this, 'register_filters' ), 10, 0 );
23
-
24
-	}
25
-
26
-	public function response( $response ) {
27
-
28
-		$headers = wp_remote_retrieve_headers( $response );
29
-
30
-		// Bail out if the `wl1` header isn't defined.
31
-		if ( ! isset( $headers[ self::WL_1 ] ) ) {
32
-			return $response;
33
-		}
34
-		$wl1_as_base64_string = $headers[ self::WL_1 ];
35
-		// phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
36
-		$wl1 = json_decode( base64_decode( $wl1_as_base64_string ), true );
37
-
38
-		$updated_features = $wl1['features'];
39
-
40
-		$existing_features = get_option( self::WL_FEATURES, array() );
41
-
42
-		// Loop through updated features.
43
-		foreach ( $updated_features as $feature_slug => $new_value ) {
44
-
45
-			// We cant pass false because that indicates if the feature is active or not, null is used to represent the features which are
46
-			// not set before.
47
-			$old_value = array_key_exists( $feature_slug, $existing_features ) ? $existing_features[ $feature_slug ] : null;
48
-
49
-			if ( $old_value !== $new_value ) {
50
-				/**
51
-				 * @param $feature_slug string The feature slug.
52
-				 * @param $old_value null | boolean Null represents the feature flag was not set before.
53
-				 * @param $new_value boolean True or false.
54
-				 *
55
-				 * @since 3.32.1
56
-				 * Hook : `wl_feature__change__{feature_slug}`
57
-				 * Action hook to be fired when there is a change in feature state.
58
-				 */
59
-				do_action( "wl_feature__change__$feature_slug", $new_value, $old_value, $feature_slug );
60
-			}
61
-		}
62
-
63
-		if ( isset( $updated_features ) ) {
64
-
65
-			if ( update_option( self::WL_FEATURES, (array) $updated_features, true ) ) {
66
-				$this->register_filters();
67
-			}
68
-		}
69
-
70
-		return $response;
71
-	}
72
-
73
-	/**
74
-	 * Registers the feature filters.
75
-	 */
76
-	public function register_filters() {
77
-
78
-		foreach ( (array) get_option( self::WL_FEATURES, array() ) as $name => $enabled ) {
79
-			// Remove previous filters.
80
-			remove_filter( "wl_feature__enable__${name}", '__return_true' );
81
-			remove_filter( "wl_feature__enable__${name}", '__return_false' );
82
-
83
-			$callback = ( $enabled ? '__return_true' : '__return_false' );
84
-			add_filter( "wl_feature__enable__${name}", $callback );
85
-		}
86
-
87
-	}
88
-
89
-	private function init_from_env() {
90
-		$features = array_reduce(
91
-			array_filter(
92
-				array_keys( $_ENV ),
93
-				function ( $key ) {
94
-					return preg_match( '~^WL_FEATURES__.*~', $key );
95
-				}
96
-			),
97
-			function ( $features, $env ) {
98
-				$name              = strtolower( str_replace( '_', '-', substr( $env, strlen( 'WL_FEATURES__' ) ) ) );
99
-				$value             = wp_validate_boolean( getenv( $env ) );
100
-				$features[ $name ] = $value;
101
-
102
-				return $features;
103
-			},
104
-			array()
105
-		);
106
-
107
-		update_option( self::WL_FEATURES, (array) $features, true );
108
-	}
6
+    const WL_FEATURES = '_wl_features';
7
+    const WL_1        = 'wl1';
8
+
9
+    public function __construct() {
10
+
11
+        // Filter responses from the API calls to update the enabled features.
12
+        add_filter( 'wl_api_service__response', array( $this, 'response' ), 10, 1 );
13
+
14
+        // Initialize from `$_ENV`: this is currently required for Unit Tests, since `tests/bootstrap.php` loads WordLift
15
+        // before it can actually query the enabled features via HTTP (mock), which would prevent files from being included.
16
+        // $this->init_from_env();
17
+
18
+        // Register the `wl_features__enable__{feature-name}` filters.
19
+        $this->register_filters();
20
+
21
+        // Hook to the updates to the features setting to refresh the features' filters.
22
+        add_action( 'update_option_' . self::WL_FEATURES, array( $this, 'register_filters' ), 10, 0 );
23
+
24
+    }
25
+
26
+    public function response( $response ) {
27
+
28
+        $headers = wp_remote_retrieve_headers( $response );
29
+
30
+        // Bail out if the `wl1` header isn't defined.
31
+        if ( ! isset( $headers[ self::WL_1 ] ) ) {
32
+            return $response;
33
+        }
34
+        $wl1_as_base64_string = $headers[ self::WL_1 ];
35
+        // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
36
+        $wl1 = json_decode( base64_decode( $wl1_as_base64_string ), true );
37
+
38
+        $updated_features = $wl1['features'];
39
+
40
+        $existing_features = get_option( self::WL_FEATURES, array() );
41
+
42
+        // Loop through updated features.
43
+        foreach ( $updated_features as $feature_slug => $new_value ) {
44
+
45
+            // We cant pass false because that indicates if the feature is active or not, null is used to represent the features which are
46
+            // not set before.
47
+            $old_value = array_key_exists( $feature_slug, $existing_features ) ? $existing_features[ $feature_slug ] : null;
48
+
49
+            if ( $old_value !== $new_value ) {
50
+                /**
51
+                 * @param $feature_slug string The feature slug.
52
+                 * @param $old_value null | boolean Null represents the feature flag was not set before.
53
+                 * @param $new_value boolean True or false.
54
+                 *
55
+                 * @since 3.32.1
56
+                 * Hook : `wl_feature__change__{feature_slug}`
57
+                 * Action hook to be fired when there is a change in feature state.
58
+                 */
59
+                do_action( "wl_feature__change__$feature_slug", $new_value, $old_value, $feature_slug );
60
+            }
61
+        }
62
+
63
+        if ( isset( $updated_features ) ) {
64
+
65
+            if ( update_option( self::WL_FEATURES, (array) $updated_features, true ) ) {
66
+                $this->register_filters();
67
+            }
68
+        }
69
+
70
+        return $response;
71
+    }
72
+
73
+    /**
74
+     * Registers the feature filters.
75
+     */
76
+    public function register_filters() {
77
+
78
+        foreach ( (array) get_option( self::WL_FEATURES, array() ) as $name => $enabled ) {
79
+            // Remove previous filters.
80
+            remove_filter( "wl_feature__enable__${name}", '__return_true' );
81
+            remove_filter( "wl_feature__enable__${name}", '__return_false' );
82
+
83
+            $callback = ( $enabled ? '__return_true' : '__return_false' );
84
+            add_filter( "wl_feature__enable__${name}", $callback );
85
+        }
86
+
87
+    }
88
+
89
+    private function init_from_env() {
90
+        $features = array_reduce(
91
+            array_filter(
92
+                array_keys( $_ENV ),
93
+                function ( $key ) {
94
+                    return preg_match( '~^WL_FEATURES__.*~', $key );
95
+                }
96
+            ),
97
+            function ( $features, $env ) {
98
+                $name              = strtolower( str_replace( '_', '-', substr( $env, strlen( 'WL_FEATURES__' ) ) ) );
99
+                $value             = wp_validate_boolean( getenv( $env ) );
100
+                $features[ $name ] = $value;
101
+
102
+                return $features;
103
+            },
104
+            array()
105
+        );
106
+
107
+        update_option( self::WL_FEATURES, (array) $features, true );
108
+    }
109 109
 
110 110
 }
Please login to merge, or discard this patch.
src/classes/api/class-api-headers-service.php 1 patch
Indentation   +39 added lines, -39 removed lines patch added patch discarded remove patch
@@ -6,44 +6,44 @@
 block discarded – undo
6 6
 
7 7
 class Api_Headers_Service {
8 8
 
9
-	private static $instance = null;
10
-
11
-	protected function __construct() {
12
-
13
-	}
14
-
15
-	/**
16
-	 * This function is used to append WordPress endpoint data to every request made.
17
-	 *
18
-	 * @return array
19
-	 */
20
-	public function get_wp_headers() {
21
-		// phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
22
-		$is_plugin_subscription = apply_filters( 'wl_feature__enable__entity-types-professional', false ) ||
23
-		                          // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
24
-								  apply_filters( 'wl_feature__enable__entity-types-business', false ) ||
25
-		                          // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
26
-								  apply_filters( 'wl_feature__enable__entity-types-starter', false );
27
-
28
-		try {
29
-			return $is_plugin_subscription ? array(
30
-				'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit( get_admin_url() ),
31
-				'X-Wordlift-Plugin-Wp-Json'  => untrailingslashit( get_rest_url() ),
32
-			) : array();
33
-		} catch ( Exception $e ) {
34
-			return array();
35
-		}
36
-	}
37
-
38
-	/**
39
-	 * @return Api_Headers_Service
40
-	 */
41
-	public static function get_instance() {
42
-		if ( null === self::$instance ) {
43
-			self::$instance = new Api_Headers_Service();
44
-		}
45
-
46
-		return self::$instance;
47
-	}
9
+    private static $instance = null;
10
+
11
+    protected function __construct() {
12
+
13
+    }
14
+
15
+    /**
16
+     * This function is used to append WordPress endpoint data to every request made.
17
+     *
18
+     * @return array
19
+     */
20
+    public function get_wp_headers() {
21
+        // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
22
+        $is_plugin_subscription = apply_filters( 'wl_feature__enable__entity-types-professional', false ) ||
23
+                                  // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
24
+                                  apply_filters( 'wl_feature__enable__entity-types-business', false ) ||
25
+                                  // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
26
+                                  apply_filters( 'wl_feature__enable__entity-types-starter', false );
27
+
28
+        try {
29
+            return $is_plugin_subscription ? array(
30
+                'X-Wordlift-Plugin-Wp-Admin' => untrailingslashit( get_admin_url() ),
31
+                'X-Wordlift-Plugin-Wp-Json'  => untrailingslashit( get_rest_url() ),
32
+            ) : array();
33
+        } catch ( Exception $e ) {
34
+            return array();
35
+        }
36
+    }
37
+
38
+    /**
39
+     * @return Api_Headers_Service
40
+     */
41
+    public static function get_instance() {
42
+        if ( null === self::$instance ) {
43
+            self::$instance = new Api_Headers_Service();
44
+        }
45
+
46
+        return self::$instance;
47
+    }
48 48
 
49 49
 }
Please login to merge, or discard this patch.
src/modules/plugin-diagnostics/includes/Plugin_Diagnostics_API.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -6,29 +6,29 @@
 block discarded – undo
6 6
 
7 7
 class Plugin_Diagnostics_API {
8 8
 
9
-	/**
10
-	 * @var Api_Service
11
-	 */
12
-	private $api_service;
9
+    /**
10
+     * @var Api_Service
11
+     */
12
+    private $api_service;
13 13
 
14
-	/**
15
-	 * @param Api_Service $api_service
16
-	 */
17
-	public function __construct( Api_Service $api_service ) {
18
-		$this->api_service = $api_service;
19
-	}
14
+    /**
15
+     * @param Api_Service $api_service
16
+     */
17
+    public function __construct( Api_Service $api_service ) {
18
+        $this->api_service = $api_service;
19
+    }
20 20
 
21
-	/**
22
-	 * Update.
23
-	 *
24
-	 * @param $payload
25
-	 */
26
-	public function update( $payload ) {
27
-		$this->api_service->request(
28
-			'PUT',
29
-			'/accounts/me/plugin/diagnostics/plugins-collection',
30
-			array( 'content-type' => 'application/json' ),
31
-			wp_json_encode( $payload )
32
-		);
33
-	}
21
+    /**
22
+     * Update.
23
+     *
24
+     * @param $payload
25
+     */
26
+    public function update( $payload ) {
27
+        $this->api_service->request(
28
+            'PUT',
29
+            '/accounts/me/plugin/diagnostics/plugins-collection',
30
+            array( 'content-type' => 'application/json' ),
31
+            wp_json_encode( $payload )
32
+        );
33
+    }
34 34
 }
Please login to merge, or discard this patch.
src/modules/plugin-diagnostics/load.php 1 patch
Indentation   +31 added lines, -31 removed lines patch added patch discarded remove patch
@@ -6,53 +6,53 @@
 block discarded – undo
6 6
 use Wordlift\Modules\Plugin_Diagnostics\Plugin_Diagnostics_API;
7 7
 
8 8
 if ( ! defined( 'ABSPATH' ) ) {
9
-	exit;
9
+    exit;
10 10
 }
11 11
 
12 12
 // Bail out if the feature isn't enabled.
13 13
 if ( ! apply_filters( 'wl_feature__enable__wordpress-plugin-diagnostics', false ) ) { // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 // Autoloader for dependencies.
18 18
 if ( file_exists( __DIR__ . '/third-party/vendor/scoper-autoload.php' ) ) {
19
-	require __DIR__ . '/third-party/vendor/scoper-autoload.php';
19
+    require __DIR__ . '/third-party/vendor/scoper-autoload.php';
20 20
 }
21 21
 
22 22
 // Autoloader for plugin itself.
23 23
 if ( file_exists( __DIR__ . '/includes/vendor/autoload.php' ) ) {
24
-	require __DIR__ . '/includes/vendor/autoload.php';
24
+    require __DIR__ . '/includes/vendor/autoload.php';
25 25
 }
26 26
 
27 27
 function __wl_plugin_diagnostics_push_config() {
28 28
 
29
-	// Get all plugins
30
-	$all_plugins = get_plugins();
31
-
32
-	// Get active plugins
33
-	$active_plugins = get_option( 'active_plugins' );
34
-
35
-	$payload = array_map(
36
-		function ( $path, $item ) use ( $active_plugins ) {
37
-			return array(
38
-				'name'    => $item['Name'],
39
-				'version' => $item['Version'],
40
-				'active'  => in_array( $path, $active_plugins, true ),
41
-			);
42
-		},
43
-		array_keys( $all_plugins ),
44
-		$all_plugins
45
-	);
46
-
47
-	// Load the service.
48
-	$container_builder = new ContainerBuilder();
49
-	$loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
50
-	$loader->load( 'services.yml' );
51
-	$container_builder->compile();
52
-
53
-	/** @var Plugin_Diagnostics_API $api */
54
-	$api = $container_builder->get( 'Wordlift\Modules\Plugin_Diagnostics\Plugin_Diagnostics_API' );
55
-	$api->update( $payload );
29
+    // Get all plugins
30
+    $all_plugins = get_plugins();
31
+
32
+    // Get active plugins
33
+    $active_plugins = get_option( 'active_plugins' );
34
+
35
+    $payload = array_map(
36
+        function ( $path, $item ) use ( $active_plugins ) {
37
+            return array(
38
+                'name'    => $item['Name'],
39
+                'version' => $item['Version'],
40
+                'active'  => in_array( $path, $active_plugins, true ),
41
+            );
42
+        },
43
+        array_keys( $all_plugins ),
44
+        $all_plugins
45
+    );
46
+
47
+    // Load the service.
48
+    $container_builder = new ContainerBuilder();
49
+    $loader            = new YamlFileLoader( $container_builder, new FileLocator( __DIR__ ) );
50
+    $loader->load( 'services.yml' );
51
+    $container_builder->compile();
52
+
53
+    /** @var Plugin_Diagnostics_API $api */
54
+    $api = $container_builder->get( 'Wordlift\Modules\Plugin_Diagnostics\Plugin_Diagnostics_API' );
55
+    $api->update( $payload );
56 56
 }
57 57
 
58 58
 /**
Please login to merge, or discard this patch.
src/modules/plugin-diagnostics/scoper.inc.php 1 patch
Indentation   +84 added lines, -84 removed lines patch added patch discarded remove patch
@@ -16,97 +16,97 @@
 block discarded – undo
16 16
 $wp_constants = json_decode( file_get_contents( 'vendor/sniccowp/php-scoper-wordpress-excludes/generated/exclude-wordpress-constants.json' ), true );
17 17
 
18 18
 return array(
19
-	// The prefix configuration. If a non null value is be used, a random prefix
20
-	// will be generated instead.
21
-	//
22
-	// For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#prefix
23
-	'prefix'             => 'Wordlift\Modules\Plugin_Diagnostics',
19
+    // The prefix configuration. If a non null value is be used, a random prefix
20
+    // will be generated instead.
21
+    //
22
+    // For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#prefix
23
+    'prefix'             => 'Wordlift\Modules\Plugin_Diagnostics',
24 24
 
25
-	// By default when running php-scoper add-prefix, it will prefix all relevant code found in the current working
26
-	// directory. You can however define which files should be scoped by defining a collection of Finders in the
27
-	// following configuration key.
28
-	//
29
-	// This configuration entry is completely ignored when using Box.
30
-	//
31
-	// For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#finders-and-paths
32
-	'finders'            => array(
33
-		Finder::create()
34
-			  ->files()
35
-			  ->ignoreVCS( true )
36
-			  ->notName( '/LICENSE|.*\\.md|.*\\.dist|Makefile|composer\\.json|composer\\.lock/' )
37
-			->exclude(
38
-				array(
39
-					'doc',
40
-					'test',
41
-					'test_old',
42
-					'tests',
43
-					'Tests',
44
-					'vendor-bin',
45
-				)
46
-			)
47
-			->in(
48
-				array(
49
-					'vendor/cweagans/composer-patches',
50
-					'vendor/mcaskill/composer-exclude-files',
51
-					'vendor/psr/container',
52
-					'vendor/symfony/config',
53
-					'vendor/symfony/dependency-injection',
54
-					'vendor/symfony/filesystem',
55
-					'vendor/symfony/polyfill-ctype',
56
-					'vendor/symfony/polyfill-php73',
57
-					'vendor/symfony/polyfill-php80',
58
-					'vendor/symfony/yaml',
59
-				)
60
-			),
25
+    // By default when running php-scoper add-prefix, it will prefix all relevant code found in the current working
26
+    // directory. You can however define which files should be scoped by defining a collection of Finders in the
27
+    // following configuration key.
28
+    //
29
+    // This configuration entry is completely ignored when using Box.
30
+    //
31
+    // For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#finders-and-paths
32
+    'finders'            => array(
33
+        Finder::create()
34
+                ->files()
35
+                ->ignoreVCS( true )
36
+                ->notName( '/LICENSE|.*\\.md|.*\\.dist|Makefile|composer\\.json|composer\\.lock/' )
37
+            ->exclude(
38
+                array(
39
+                    'doc',
40
+                    'test',
41
+                    'test_old',
42
+                    'tests',
43
+                    'Tests',
44
+                    'vendor-bin',
45
+                )
46
+            )
47
+            ->in(
48
+                array(
49
+                    'vendor/cweagans/composer-patches',
50
+                    'vendor/mcaskill/composer-exclude-files',
51
+                    'vendor/psr/container',
52
+                    'vendor/symfony/config',
53
+                    'vendor/symfony/dependency-injection',
54
+                    'vendor/symfony/filesystem',
55
+                    'vendor/symfony/polyfill-ctype',
56
+                    'vendor/symfony/polyfill-php73',
57
+                    'vendor/symfony/polyfill-php80',
58
+                    'vendor/symfony/yaml',
59
+                )
60
+            ),
61 61
 
62
-		// Symfony mbstring polyfill.
63
-		Finder::create()
64
-			  ->files()
65
-			  ->ignoreVCS( true )
66
-			  ->ignoreDotFiles( true )
67
-			  ->name( '/\.*.php8?/' )
68
-			  ->in( 'vendor/symfony/polyfill-mbstring/Resources' )
69
-			->append(
70
-				array(
71
-					'vendor/symfony/polyfill-mbstring/Mbstring.php',
72
-					'vendor/symfony/polyfill-mbstring/composer.json',
73
-				)
74
-			),
62
+        // Symfony mbstring polyfill.
63
+        Finder::create()
64
+                ->files()
65
+                ->ignoreVCS( true )
66
+                ->ignoreDotFiles( true )
67
+                ->name( '/\.*.php8?/' )
68
+                ->in( 'vendor/symfony/polyfill-mbstring/Resources' )
69
+            ->append(
70
+                array(
71
+                    'vendor/symfony/polyfill-mbstring/Mbstring.php',
72
+                    'vendor/symfony/polyfill-mbstring/composer.json',
73
+                )
74
+            ),
75 75
 
76
-		Finder::create()->append(
77
-			array(
78
-				'composer.json',
79
-			)
80
-		),
81
-	),
76
+        Finder::create()->append(
77
+            array(
78
+                'composer.json',
79
+            )
80
+        ),
81
+    ),
82 82
 
83
-	// List of excluded files, i.e. files for which the content will be left untouched.
84
-	// Paths are relative to the configuration file unless if they are already absolute
85
-	//
86
-	// For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#patchers
87
-	'exclude-files'      => array(),
83
+    // List of excluded files, i.e. files for which the content will be left untouched.
84
+    // Paths are relative to the configuration file unless if they are already absolute
85
+    //
86
+    // For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#patchers
87
+    'exclude-files'      => array(),
88 88
 
89
-	// When scoping PHP files, there will be scenarios where some of the code being scoped indirectly references the
90
-	// original namespace. These will include, for example, strings or string manipulations. PHP-Scoper has limited
91
-	// support for prefixing such strings. To circumvent that, you can define patchers to manipulate the file to your
92
-	// heart contents.
93
-	//
94
-	// For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#patchers
95
-	'patchers'           => array(),
89
+    // When scoping PHP files, there will be scenarios where some of the code being scoped indirectly references the
90
+    // original namespace. These will include, for example, strings or string manipulations. PHP-Scoper has limited
91
+    // support for prefixing such strings. To circumvent that, you can define patchers to manipulate the file to your
92
+    // heart contents.
93
+    //
94
+    // For more see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#patchers
95
+    'patchers'           => array(),
96 96
 
97
-	// List of symbols to consider internal i.e. to leave untouched.
98
-	//
99
-	// For more information see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#excluded-symbols
100
-	'exclude-namespaces' => array(
101
-		// 'Acme\Foo'                     // The Acme\Foo namespace (and sub-namespaces)
102
-		// '~^PHPUnit\\\\Framework$~',    // The whole namespace PHPUnit\Framework (but not sub-namespaces)
103
-		// '~^$~',                        // The root namespace only
104
-		// '',                            // Any namespace
105
-	),
106
-	'exclude-classes'    => $wp_classes,
97
+    // List of symbols to consider internal i.e. to leave untouched.
98
+    //
99
+    // For more information see: https://github.com/humbug/php-scoper/blob/master/docs/configuration.md#excluded-symbols
100
+    'exclude-namespaces' => array(
101
+        // 'Acme\Foo'                     // The Acme\Foo namespace (and sub-namespaces)
102
+        // '~^PHPUnit\\\\Framework$~',    // The whole namespace PHPUnit\Framework (but not sub-namespaces)
103
+        // '~^$~',                        // The root namespace only
104
+        // '',                            // Any namespace
105
+    ),
106
+    'exclude-classes'    => $wp_classes,
107 107
 
108
-	'exclude-functions'  => $wp_functions,
108
+    'exclude-functions'  => $wp_functions,
109 109
 
110
-	'exclude-constants'  => $wp_constants,
110
+    'exclude-constants'  => $wp_constants,
111 111
 
112 112
 );
Please login to merge, or discard this patch.
src/wordlift.php 1 patch
Indentation   +172 added lines, -172 removed lines patch added patch discarded remove patch
@@ -47,7 +47,7 @@  discard block
 block discarded – undo
47 47
  * @since 3.33.6
48 48
  */
49 49
 if ( ! apply_filters( 'wl_is_enabled', true ) ) {
50
-	return;
50
+    return;
51 51
 }
52 52
 
53 53
 require_once plugin_dir_path( __FILE__ ) . 'vendor/autoload.php';
@@ -76,33 +76,33 @@  discard block
 block discarded – undo
76 76
  */
77 77
 function activate_wordlift() {
78 78
 
79
-	$log = Wordlift_Log_Service::get_logger( 'activate_wordlift' );
79
+    $log = Wordlift_Log_Service::get_logger( 'activate_wordlift' );
80 80
 
81
-	$log->info( 'Activating WordLift...' );
81
+    $log->info( 'Activating WordLift...' );
82 82
 
83
-	require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordlift-activator.php';
84
-	Wordlift_Activator::activate();
83
+    require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordlift-activator.php';
84
+    Wordlift_Activator::activate();
85 85
 
86
-	/**
87
-	 * Tell the {@link Wordlift_Http_Api} class that we're activating, to let it run activation tasks.
88
-	 *
89
-	 * @see https://github.com/insideout10/wordlift-plugin/issues/820 related issue.
90
-	 * @since 3.19.2
91
-	 */
92
-	Wordlift_Http_Api::activate();
86
+    /**
87
+     * Tell the {@link Wordlift_Http_Api} class that we're activating, to let it run activation tasks.
88
+     *
89
+     * @see https://github.com/insideout10/wordlift-plugin/issues/820 related issue.
90
+     * @since 3.19.2
91
+     */
92
+    Wordlift_Http_Api::activate();
93 93
 
94
-	// Ensure the post type is registered before flushing the rewrite rules.
95
-	Wordlift_Entity_Post_Type_Service::get_instance()->register();
96
-	flush_rewrite_rules();
97
-	/**
98
-	 * @since 3.27.7
99
-	 * @see https://github.com/insideout10/wordlift-plugin/issues/1214
100
-	 */
101
-	Top_Entities::activate();
94
+    // Ensure the post type is registered before flushing the rewrite rules.
95
+    Wordlift_Entity_Post_Type_Service::get_instance()->register();
96
+    flush_rewrite_rules();
97
+    /**
98
+     * @since 3.27.7
99
+     * @see https://github.com/insideout10/wordlift-plugin/issues/1214
100
+     */
101
+    Top_Entities::activate();
102 102
 
103
-	if ( ! wp_next_scheduled( 'wl_daily_cron' ) ) {
104
-		wp_schedule_event( time(), 'daily', 'wl_daily_cron' );
105
-	}
103
+    if ( ! wp_next_scheduled( 'wl_daily_cron' ) ) {
104
+        wp_schedule_event( time(), 'daily', 'wl_daily_cron' );
105
+    }
106 106
 
107 107
 }
108 108
 
@@ -112,23 +112,23 @@  discard block
 block discarded – undo
112 112
  */
113 113
 function deactivate_wordlift() {
114 114
 
115
-	require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordlift-deactivator.php';
116
-	Wordlift_Deactivator::deactivate();
117
-	Wordlift_Http_Api::deactivate();
118
-	Ttl_Cache_Cleaner::deactivate();
119
-	/**
120
-	 * @since 3.27.7
121
-	 * @see https://github.com/insideout10/wordlift-plugin/issues/1214
122
-	 */
123
-	Top_Entities::deactivate();
124
-	/**
125
-	 * @since 3.27.8
126
-	 * Remove notification flag on deactivation.
127
-	 */
128
-	Key_Validation_Notice::remove_notification_flag();
129
-	flush_rewrite_rules();
130
-
131
-	wp_clear_scheduled_hook( 'wl_daily_cron' );
115
+    require_once plugin_dir_path( __FILE__ ) . 'includes/class-wordlift-deactivator.php';
116
+    Wordlift_Deactivator::deactivate();
117
+    Wordlift_Http_Api::deactivate();
118
+    Ttl_Cache_Cleaner::deactivate();
119
+    /**
120
+     * @since 3.27.7
121
+     * @see https://github.com/insideout10/wordlift-plugin/issues/1214
122
+     */
123
+    Top_Entities::deactivate();
124
+    /**
125
+     * @since 3.27.8
126
+     * Remove notification flag on deactivation.
127
+     */
128
+    Key_Validation_Notice::remove_notification_flag();
129
+    flush_rewrite_rules();
130
+
131
+    wp_clear_scheduled_hook( 'wl_daily_cron' );
132 132
 
133 133
 }
134 134
 
@@ -151,84 +151,84 @@  discard block
 block discarded – undo
151 151
  * @since    1.0.0
152 152
  */
153 153
 function run_wordlift() {
154
-	/**
155
-	 * Filter: wl_feature__enable__widgets.
156
-	 *
157
-	 * @param bool whether the widgets needed to be registered, defaults to true.
158
-	 *
159
-	 * @return bool
160
-	 * @since 3.27.6
161
-	 */
162
-	if ( apply_filters( 'wl_feature__enable__widgets', true ) ) {
163
-		add_action( 'widgets_init', 'wl_register_chord_widget' );
164
-		add_action( 'widgets_init', 'wl_register_geo_widget' );
165
-		add_action( 'widgets_init', 'wl_register_timeline_widget' );
166
-	}
167
-	add_filter( 'widget_text', 'do_shortcode' );
168
-
169
-	/**
170
-	 * Filter: wl_feature__enable__analysis
171
-	 *
172
-	 * @param bool Whether to send api request to analysis or not
173
-	 *
174
-	 * @return bool
175
-	 * @since 3.27.6
176
-	 */
177
-	if ( apply_filters( 'wl_feature__enable__analysis', true ) ) {
178
-		add_action( 'wp_ajax_wl_analyze', 'wl_ajax_analyze_action' );
179
-	} else {
180
-		add_action( 'wp_ajax_wl_analyze', 'wl_ajax_analyze_disabled_action' );
181
-	}
182
-
183
-	$plugin = new Wordlift();
184
-	$plugin->run();
185
-
186
-	// Initialize the TTL Cache Cleaner.
187
-	new Ttl_Cache_Cleaner();
188
-
189
-	// Load the new Post Adapter.
190
-	new Post_Adapter();
191
-
192
-	// Load the API Data Hooks.
193
-	new Api_Data_Hooks();
194
-
195
-	add_action(
196
-		'plugins_loaded',
197
-		function () {
198
-			// All features from registry should be initialized here.
199
-			$features_registry = Features_Registry::get_instance();
200
-			$features_registry->initialize_all_features();
201
-		},
202
-		5
203
-	);
204
-
205
-	add_action(
206
-		'plugins_loaded',
207
-		// phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
208
-		function () use ( $plugin ) {
209
-
210
-			new Wordlift_Products_Navigator_Shortcode_REST();
211
-
212
-			// Register the Dataset module, requires `$api_service`.
213
-			require_once plugin_dir_path( __FILE__ ) . 'classes/dataset/index.php';
214
-			require_once plugin_dir_path( __FILE__ ) . 'classes/shipping-data/index.php';
215
-
216
-			/*
154
+    /**
155
+     * Filter: wl_feature__enable__widgets.
156
+     *
157
+     * @param bool whether the widgets needed to be registered, defaults to true.
158
+     *
159
+     * @return bool
160
+     * @since 3.27.6
161
+     */
162
+    if ( apply_filters( 'wl_feature__enable__widgets', true ) ) {
163
+        add_action( 'widgets_init', 'wl_register_chord_widget' );
164
+        add_action( 'widgets_init', 'wl_register_geo_widget' );
165
+        add_action( 'widgets_init', 'wl_register_timeline_widget' );
166
+    }
167
+    add_filter( 'widget_text', 'do_shortcode' );
168
+
169
+    /**
170
+     * Filter: wl_feature__enable__analysis
171
+     *
172
+     * @param bool Whether to send api request to analysis or not
173
+     *
174
+     * @return bool
175
+     * @since 3.27.6
176
+     */
177
+    if ( apply_filters( 'wl_feature__enable__analysis', true ) ) {
178
+        add_action( 'wp_ajax_wl_analyze', 'wl_ajax_analyze_action' );
179
+    } else {
180
+        add_action( 'wp_ajax_wl_analyze', 'wl_ajax_analyze_disabled_action' );
181
+    }
182
+
183
+    $plugin = new Wordlift();
184
+    $plugin->run();
185
+
186
+    // Initialize the TTL Cache Cleaner.
187
+    new Ttl_Cache_Cleaner();
188
+
189
+    // Load the new Post Adapter.
190
+    new Post_Adapter();
191
+
192
+    // Load the API Data Hooks.
193
+    new Api_Data_Hooks();
194
+
195
+    add_action(
196
+        'plugins_loaded',
197
+        function () {
198
+            // All features from registry should be initialized here.
199
+            $features_registry = Features_Registry::get_instance();
200
+            $features_registry->initialize_all_features();
201
+        },
202
+        5
203
+    );
204
+
205
+    add_action(
206
+        'plugins_loaded',
207
+        // phpcs:ignore VariableAnalysis.CodeAnalysis.VariableAnalysis.UnusedVariable
208
+        function () use ( $plugin ) {
209
+
210
+            new Wordlift_Products_Navigator_Shortcode_REST();
211
+
212
+            // Register the Dataset module, requires `$api_service`.
213
+            require_once plugin_dir_path( __FILE__ ) . 'classes/dataset/index.php';
214
+            require_once plugin_dir_path( __FILE__ ) . 'classes/shipping-data/index.php';
215
+
216
+            /*
217 217
 			* Require the Entity annotation cleanup module.
218 218
 			*
219 219
 			* @since 3.34.6
220 220
 			*/
221
-			require_once plugin_dir_path( __FILE__ ) . 'classes/cleanup/index.php';
221
+            require_once plugin_dir_path( __FILE__ ) . 'classes/cleanup/index.php';
222 222
 
223
-			/*
223
+            /*
224 224
 			* Import LOD entities.
225 225
 			*
226 226
 			* @since 3.35.0
227 227
 			*/
228
-			require_once plugin_dir_path( __FILE__ ) . 'classes/lod-import/index.php';
228
+            require_once plugin_dir_path( __FILE__ ) . 'classes/lod-import/index.php';
229 229
 
230
-		}
231
-	);
230
+        }
231
+    );
232 232
 
233 233
 }
234 234
 
@@ -242,50 +242,50 @@  discard block
 block discarded – undo
242 242
  */
243 243
 function wordlift_plugin_autoload_register() {
244 244
 
245
-	spl_autoload_register(
246
-		function ( $class_name ) {
245
+    spl_autoload_register(
246
+        function ( $class_name ) {
247 247
 
248
-			// Bail out if these are not our classes.
249
-			if ( 0 !== strpos( $class_name, 'Wordlift\\' ) ) {
250
-				return false;
251
-			}
248
+            // Bail out if these are not our classes.
249
+            if ( 0 !== strpos( $class_name, 'Wordlift\\' ) ) {
250
+                return false;
251
+            }
252 252
 
253
-			$class_name_lc = strtolower( str_replace( '_', '-', $class_name ) );
253
+            $class_name_lc = strtolower( str_replace( '_', '-', $class_name ) );
254 254
 
255
-			preg_match( '|^wordlift\\\\(?:(.*)\\\\)?(.+?)$|', $class_name_lc, $matches );
255
+            preg_match( '|^wordlift\\\\(?:(.*)\\\\)?(.+?)$|', $class_name_lc, $matches );
256 256
 
257
-			$path = str_replace( '\\', DIRECTORY_SEPARATOR, $matches[1] );
258
-			$file = 'class-' . $matches[2] . '.php';
257
+            $path = str_replace( '\\', DIRECTORY_SEPARATOR, $matches[1] );
258
+            $file = 'class-' . $matches[2] . '.php';
259 259
 
260
-			$full_path = plugin_dir_path( __FILE__ ) . 'classes' . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file;
260
+            $full_path = plugin_dir_path( __FILE__ ) . 'classes' . DIRECTORY_SEPARATOR . $path . DIRECTORY_SEPARATOR . $file;
261 261
 
262
-			if ( ! file_exists( $full_path ) ) {
263
-				return false;
264
-			}
262
+            if ( ! file_exists( $full_path ) ) {
263
+                return false;
264
+            }
265 265
 
266
-			try {
267
-				require_once $full_path;
268
-			} catch ( Exception $e ) {
269
-				// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
270
-				error_log( "[WordLift] $full_path not found, cannot include." );
271
-			}
266
+            try {
267
+                require_once $full_path;
268
+            } catch ( Exception $e ) {
269
+                // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
270
+                error_log( "[WordLift] $full_path not found, cannot include." );
271
+            }
272 272
 
273
-			return true;
274
-		}
275
-	);
273
+            return true;
274
+        }
275
+    );
276 276
 
277 277
 }
278 278
 
279 279
 function wl_block_categories( $categories ) {
280
-	return array_merge(
281
-		$categories,
282
-		array(
283
-			array(
284
-				'slug'  => 'wordlift',
285
-				'title' => __( 'WordLift', 'wordlift' ),
286
-			),
287
-		)
288
-	);
280
+    return array_merge(
281
+        $categories,
282
+        array(
283
+            array(
284
+                'slug'  => 'wordlift',
285
+                'title' => __( 'WordLift', 'wordlift' ),
286
+            ),
287
+        )
288
+    );
289 289
 }
290 290
 
291 291
 /**
@@ -293,19 +293,19 @@  discard block
 block discarded – undo
293 293
  * this has to be removed when removing the legacy fields from the ui.
294 294
  */
295 295
 function wl_enqueue_leaflet( $in_footer = false ) {
296
-	// Leaflet.
297
-	wp_enqueue_style( 'wl-leaflet', plugin_dir_url( __FILE__ ) . 'js/leaflet/leaflet.css', array(), '1.6.0' );
298
-	wp_enqueue_script( 'wl-leaflet', plugin_dir_url( __FILE__ ) . 'js/leaflet/leaflet.js', array(), '1.6.0', $in_footer );
296
+    // Leaflet.
297
+    wp_enqueue_style( 'wl-leaflet', plugin_dir_url( __FILE__ ) . 'js/leaflet/leaflet.css', array(), '1.6.0' );
298
+    wp_enqueue_script( 'wl-leaflet', plugin_dir_url( __FILE__ ) . 'js/leaflet/leaflet.js', array(), '1.6.0', $in_footer );
299 299
 }
300 300
 
301 301
 add_filter( 'block_categories', 'wl_block_categories', 10 );
302 302
 
303 303
 // Temporary fix for a typo in WooCommerce Extension.
304 304
 add_filter(
305
-	'wl_feature__enable__dataset',
306
-	function ( $value ) {
307
-		return apply_filters( 'wl_features__enable__dataset', $value );
308
-	}
305
+    'wl_feature__enable__dataset',
306
+    function ( $value ) {
307
+        return apply_filters( 'wl_features__enable__dataset', $value );
308
+    }
309 309
 );
310 310
 
311 311
 require_once __DIR__ . '/modules/food-kg/load.php';
@@ -321,35 +321,35 @@  discard block
 block discarded – undo
321 321
 require_once __DIR__ . '/modules/plugin-diagnostics/load.php';
322 322
 
323 323
 function _wl_update_plugins_raptive_domain( $update, $plugin_data, $plugin_file ) {
324
-	// Bail out if it's not our plugin.
325
-	$update_uri = $plugin_data['UpdateURI'];
326
-	if ( 'wordlift/wordlift.php' !== $plugin_file || ! isset( $update_uri ) ) {
327
-		return $update;
328
-	}
329
-
330
-	$response = wp_remote_get( "$update_uri?nocache=" . time() );
331
-
332
-	if ( is_wp_error( $response ) ) {
333
-		return $update;
334
-	}
335
-
336
-	try {
337
-		return json_decode( wp_remote_retrieve_body( $response ) );
338
-	} catch ( Exception $e ) {
339
-		return $update;
340
-	}
324
+    // Bail out if it's not our plugin.
325
+    $update_uri = $plugin_data['UpdateURI'];
326
+    if ( 'wordlift/wordlift.php' !== $plugin_file || ! isset( $update_uri ) ) {
327
+        return $update;
328
+    }
329
+
330
+    $response = wp_remote_get( "$update_uri?nocache=" . time() );
331
+
332
+    if ( is_wp_error( $response ) ) {
333
+        return $update;
334
+    }
335
+
336
+    try {
337
+        return json_decode( wp_remote_retrieve_body( $response ) );
338
+    } catch ( Exception $e ) {
339
+        return $update;
340
+    }
341 341
 }
342 342
 
343 343
 add_action(
344
-	'update_plugins_adthrive.wordlift.io',
345
-	'_wl_update_plugins_raptive_domain',
346
-	10,
347
-	3
344
+    'update_plugins_adthrive.wordlift.io',
345
+    '_wl_update_plugins_raptive_domain',
346
+    10,
347
+    3
348 348
 );
349 349
 
350 350
 add_action(
351
-	'update_plugins_raptive.wordlift.io',
352
-	'_wl_update_plugins_raptive_domain',
353
-	10,
354
-	3
351
+    'update_plugins_raptive.wordlift.io',
352
+    '_wl_update_plugins_raptive_domain',
353
+    10,
354
+    3
355 355
 );
Please login to merge, or discard this patch.