Make WordPress Core


Ignore:
Timestamp:
01/23/2020 12:25:38 AM (5 years ago)
Author:
SergeyBiryukov
Message:

Cache API: Remove WP_Object_Cache::__destruct() and wpdb::__destruct().

Originally added in [4686], these constructor/destructor pairings were designed to prevent the objects from being destroyed before shutdown, when output buffers are flushed.

A deeper investigation reveals that this approach didn't quite work as expected and was later made redundant by introducing wp_ob_end_flush_all() in [5462].

Props wonderboymusic, nacin, Mte90, SergeyBiryukov.
Fixes #21402.

File:
1 edited

Legend:

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

    r47060 r47107  
    337337
    338338    /**
     339     * Sets up object properties; PHP 5 style constructor.
     340     *
     341     * @since 2.0.8
     342     */
     343    public function __construct() {
     344        $this->multisite   = is_multisite();
     345        $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';
     346    }
     347
     348    /**
    339349     * Makes private properties readable for backward compatibility.
    340350     *
     
    727737        return isset( $this->cache[ $group ] ) && ( isset( $this->cache[ $group ][ $key ] ) || array_key_exists( $key, $this->cache[ $group ] ) );
    728738    }
    729 
    730     /**
    731      * Sets up object properties; PHP 5 style constructor.
    732      *
    733      * @since 2.0.8
    734      */
    735     public function __construct() {
    736         $this->multisite   = is_multisite();
    737         $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : '';
    738 
    739         /**
    740          * @todo This should be moved to the PHP4 style constructor, PHP5
    741          * already calls __destruct()
    742          */
    743         register_shutdown_function( array( $this, '__destruct' ) );
    744     }
    745 
    746     /**
    747      * Saves the object cache before object is completely destroyed.
    748      *
    749      * Called upon object destruction, which should be when PHP ends.
    750      *
    751      * @since 2.0.8
    752      *
    753      * @return true Always returns true.
    754      */
    755     public function __destruct() {
    756         return true;
    757     }
    758 }
     739}
Note: See TracChangeset for help on using the changeset viewer.