Make WordPress Core


Ignore:
Timestamp:
06/26/2023 07:55:28 PM (3 years ago)
Author:
flixos90
Message:

General: Introduce WP_DEVELOPMENT_MODE constant to signify context-specific development mode.

In recent releases, WordPress core added several instances of cache usage around specific files. While those caches are safe to use in a production context, in development certain nuances apply for whether or not those caches make sense to use. Initially, WP_DEBUG was used as a temporary workaround, but it was clear that a more granular method to signify a specific development mode was required: For example, caches around theme.json should be disabled when working on a theme as otherwise it would disrupt the theme developer's workflow, but when working on a plugin or WordPress core, this consideration does not apply.

This changeset introduces a WP_DEVELOPMENT_MODE constant which, for now, can be set to either "core", "plugin", "theme", or an empty string, the latter of which means no development mode, which is also the default. A new function wp_get_development_mode() is the recommended way to retrieve that configuration value.

With the new function available, this changeset replaces all existing instances of the aforementioned WP_DEBUG workaround to use wp_get_development_mode() with a more specific check.

Props azaozz, sergeybiryukov, peterwilsoncc, spacedmonkey.
Fixes #57487.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/phpunit/tests/theme/wpGetGlobalStylesheet.php

    r55572 r56042  
    222222
    223223    /**
     224     * Tests that the function relies on the development mode for whether to use caching.
     225     *
     226     * @ticket 57487
     227     */
     228    public function test_caching_is_used_when_developing_theme() {
     229        global $_wp_tests_development_mode;
     230
     231        $this->maybe_switch_theme( 'block-theme' );
     232
     233        // Store CSS in cache.
     234        $css = '.my-class { display: block; }';
     235        wp_cache_set( 'wp_get_global_stylesheet', $css, 'theme_json' );
     236
     237        // By default, caching should be used, so the above value will be returned.
     238        $_wp_tests_development_mode = '';
     239        $this->assertSame( $css, wp_get_global_stylesheet(), 'Caching was not used despite development mode disabled' );
     240
     241        // When the development mode is set to 'theme', caching should not be used.
     242        $_wp_tests_development_mode = 'theme';
     243        $this->assertNotSame( $css, wp_get_global_stylesheet(), 'Caching was used despite theme development mode' );
     244    }
     245
     246    /**
    224247     * Adds the 'editor-font-sizes' theme support with custom font sizes.
    225248     *
Note: See TracChangeset for help on using the changeset viewer.