WordPress.org

Make WordPress Core

Changeset 32635


Ignore:
Timestamp:
05/28/2015 03:28:10 PM (6 years ago)
Author:
wonderboymusic
Message:

Add missing doc blocks to update.php:

  • wp_version_check(), wp_update_plugins(), and wp_update_themes() do not return meaningful responses, and their responses are never handled by core. As such, they shouldn't alternately return void or false. "Returning" in those functions is just "bailing"
  • In the same functions, version.php doesn't need to load if WP_INSTALLING is defined - the function will immediately bail, the values will never be read, and the globals won't be reset. I have unified the approach in all 3 functions.
  • When returning filtered $locale, there is no need to set the variable twice.
  • In _maybe_update_core(), isset() can take multiple values to bail before the call to time(), if necessary. This is a micro-optimization to prevent PHP from hitting the OS unnecessarily.

See #32444.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/update.php

    r31825 r32635  
    1515 *
    1616 * @since 2.3.0
    17  * @uses $wp_version Used to check against the newest WordPress version.
     17 * @global string $wp_version Used to check against the newest WordPress version.
     18 * @global wpdb   $wpdb
     19 * @global string $wp_local_package
    1820 *
    1921 * @param array $extra_stats Extra statistics to report to the WordPress.org API.
    20  * @param bool $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set.
    21  * @return null|false Returns null if update is unsupported. Returns false if check is too soon.
     22 * @param bool  $force_check Whether to bypass the transient cache and force a fresh update check. Defaults to false, true if $extra_stats is set.
    2223 */
    2324function wp_version_check( $extra_stats = array(), $force_check = false ) {
    24     if ( defined('WP_INSTALLING') )
    25         return;
    26 
    27     global $wpdb, $wp_local_package;
    28     include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
     25    if ( defined( 'WP_INSTALLING' ) ) {
     26        return;
     27    }
     28
     29    global $wp_version, $wpdb, $wp_local_package;
     30    // include an unmodified $wp_version
     31    include( ABSPATH . WPINC . '/version.php' );
    2932    $php_version = phpversion();
    3033
     
    4851    $timeout = 60;
    4952    $time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
    50     if ( ! $force_check && $time_not_changed )
    51         return false;
    52 
    53     $locale = get_locale();
     53    if ( ! $force_check && $time_not_changed ) {
     54        return;
     55    }
     56
    5457    /**
    5558     * Filter the locale requested for WordPress core translations.
     
    5962     * @param string $locale Current locale.
    6063     */
    61     $locale = apply_filters( 'core_version_check_locale', $locale );
     64    $locale = apply_filters( 'core_version_check_locale', get_locale() );
    6265
    6366    // Update last_checked for current to prevent multiple blocking requests if request hangs
     
    121124    }
    122125
    123     if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) )
    124         return false;
     126    if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
     127        return;
     128    }
    125129
    126130    $body = trim( wp_remote_retrieve_body( $response ) );
    127131    $body = json_decode( $body, true );
    128132
    129     if ( ! is_array( $body ) || ! isset( $body['offers'] ) )
    130         return false;
     133    if ( ! is_array( $body ) || ! isset( $body['offers'] ) ) {
     134        return;
     135    }
    131136
    132137    $offers = $body['offers'];
     
    178183 *
    179184 * @since 2.3.0
    180  * @uses $wp_version Used to notify the WordPress version.
     185 * @global string $wp_version Used to notify the WordPress version.
    181186 *
    182187 * @param array $extra_stats Extra statistics to report to the WordPress.org API.
    183  * @return false|null Returns null if update is unsupported. Returns false if check is too soon.
    184188 */
    185189function wp_update_plugins( $extra_stats = array() ) {
    186     include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
    187 
    188     if ( defined('WP_INSTALLING') )
    189         return false;
     190    if ( defined( 'WP_INSTALLING' ) ) {
     191        return;
     192    }
     193
     194    global $wp_version;
     195    // include an unmodified $wp_version
     196    include( ABSPATH . WPINC . '/version.php' );
    190197
    191198    // If running blog-side, bail unless we've not checked in the last 12 hours
     
    245252
    246253        // Bail if we've checked recently and if nothing has changed
    247         if ( ! $plugin_changed )
    248             return false;
     254        if ( ! $plugin_changed ) {
     255            return;
     256        }
    249257    }
    250258
     
    255263    $to_send = compact( 'plugins', 'active' );
    256264
    257     $locales = array( get_locale() );
    258265    /**
    259266     * Filter the locales requested for plugin translations.
     
    263270     * @param array $locales Plugin locale. Default is current locale of the site.
    264271     */
    265     $locales = apply_filters( 'plugins_update_check_locales', $locales );
     272    $locales = apply_filters( 'plugins_update_check_locales', array( get_locale() ) );
    266273
    267274    if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     
    297304    }
    298305
    299     if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) )
    300         return false;
     306    if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) {
     307        return;
     308    }
    301309
    302310    $response = json_decode( wp_remote_retrieve_body( $raw_response ), true );
     
    335343 *
    336344 * @param array $extra_stats Extra statistics to report to the WordPress.org API.
    337  * @return false|null Returns null if update is unsupported. Returns false if check is too soon.
    338345 */
    339346function wp_update_themes( $extra_stats = array() ) {
    340     include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
    341 
    342     if ( defined( 'WP_INSTALLING' ) )
    343         return false;
     347    if ( defined( 'WP_INSTALLING' ) ) {
     348        return;
     349    }
     350    global $wp_version;
     351    // include an unmodified $wp_version
     352    include( ABSPATH . WPINC . '/version.php' );
    344353
    345354    $installed_themes = wp_get_themes();
     
    408417
    409418        // Bail if we've checked recently and if nothing has changed
    410         if ( ! $theme_changed )
    411             return false;
     419        if ( ! $theme_changed ) {
     420            return;
     421        }
    412422    }
    413423
     
    418428    $request['themes'] = $themes;
    419429
    420     $locales = array( get_locale() );
    421430    /**
    422431     * Filter the locales requested for theme translations.
     
    426435     * @param array $locales Theme locale. Default is current locale of the site.
    427436     */
    428     $locales = apply_filters( 'themes_update_check_locales', $locales );
     437    $locales = apply_filters( 'themes_update_check_locales', array( get_locale() ) );
    429438
    430439    if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
     
    459468    }
    460469
    461     if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) )
    462         return false;
     470    if ( is_wp_error( $raw_response ) || 200 != wp_remote_retrieve_response_code( $raw_response ) ) {
     471        return;
     472    }
    463473
    464474    $new_update = new stdClass;
     
    493503 *
    494504 * @since 3.7.0
     505 *
     506 * @return array
    495507 */
    496508function wp_get_translation_updates() {
     
    498510    $transients = array( 'update_core' => 'core', 'update_plugins' => 'plugin', 'update_themes' => 'theme' );
    499511    foreach ( $transients as $transient => $type ) {
    500 
    501512        $transient = get_site_transient( $transient );
    502513        if ( empty( $transient->translations ) )
     
    507518        }
    508519    }
    509 
    510520    return $updates;
    511521}
     
    572582}
    573583
     584/**
     585 * @global string $wp_version
     586 */
    574587function _maybe_update_core() {
     588    global $wp_version;
    575589    include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
    576590
    577591    $current = get_site_transient( 'update_core' );
    578592
    579     if ( isset( $current->last_checked ) &&
     593    if ( isset( $current->last_checked, $current->version_checked ) &&
    580594        12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) &&
    581         isset( $current->version_checked ) &&
    582         $current->version_checked == $wp_version )
    583         return;
    584 
     595        $current->version_checked == $wp_version ) {
     596        return;
     597    }
    585598    wp_version_check();
    586599}
     
    615628    if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) )
    616629        return;
    617 
    618630    wp_update_themes();
    619631}
Note: See TracChangeset for help on using the changeset viewer.