Make WordPress Core

Changeset 46220


Ignore:
Timestamp:
09/20/2019 10:33:13 PM (6 years ago)
Author:
SergeyBiryukov
Message:

Code Modernization: Remove workarounds for spl_object_hash().

The spl_object_hash() function was introduced in PHP 5.2.0. As of PHP 5.3, the PHP SPL extension can no longer be disabled, so these workarounds are no longer needed.

Props jrf.
See #48074.

Location:
trunk/src/wp-includes
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-widget-factory.php

    r42343 r46220  
    5757
    5858    /**
    59      * Hashes an object, doing fallback of `spl_object_hash()` if not available.
    60      *
    61      * This can be eliminated in favor of straight spl_object_hash() when 5.3
    62      * is the minimum requirement for PHP.
    63      *
    64      * @since 4.6.0
    65      *
    66      * @param WP_Widget $widget Widget.
    67      * @return string Object hash.
    68      */
    69     private function hash_object( $widget ) {
    70         if ( function_exists( 'spl_object_hash' ) ) {
    71             return spl_object_hash( $widget );
    72         } else {
    73             $class_name = get_class( $widget );
    74             $hash       = $class_name;
    75             if ( ! isset( $widget->_wp_widget_factory_hash_id ) ) {
    76                 if ( ! isset( $this->hashed_class_counts[ $class_name ] ) ) {
    77                     $this->hashed_class_counts[ $class_name ] = 0;
    78                 }
    79                 $this->hashed_class_counts[ $class_name ] += 1;
    80                 $widget->_wp_widget_factory_hash_id        = $this->hashed_class_counts[ $class_name ];
    81             }
    82             $hash .= ':' . $widget->_wp_widget_factory_hash_id;
    83             return $hash;
    84         }
    85     }
    86 
    87     /**
    8859     * Registers a widget subclass.
    8960     *
     
    9667    public function register( $widget ) {
    9768        if ( $widget instanceof WP_Widget ) {
    98             $this->widgets[ $this->hash_object( $widget ) ] = $widget;
     69            $this->widgets[ spl_object_hash( $widget ) ] = $widget;
    9970        } else {
    10071            $this->widgets[ $widget ] = new $widget();
     
    11384    public function unregister( $widget ) {
    11485        if ( $widget instanceof WP_Widget ) {
    115             unset( $this->widgets[ $this->hash_object( $widget ) ] );
     86            unset( $this->widgets[ spl_object_hash( $widget ) ] );
    11687        } else {
    11788            unset( $this->widgets[ $widget ] );
  • trunk/src/wp-includes/plugin.php

    r46149 r46220  
    926926    if ( is_object( $function[0] ) ) {
    927927        // Object Class Calling
    928         if ( function_exists( 'spl_object_hash' ) ) {
    929             return spl_object_hash( $function[0] ) . $function[1];
    930         } else {
    931             $obj_idx = get_class( $function[0] ) . $function[1];
    932             if ( ! isset( $function[0]->wp_filter_id ) ) {
    933                 if ( false === $priority ) {
    934                     return false;
    935                 }
    936                 $obj_idx                  .= isset( $wp_filter[ $tag ][ $priority ] ) ? count( (array) $wp_filter[ $tag ][ $priority ] ) : $filter_id_count;
    937                 $function[0]->wp_filter_id = $filter_id_count;
    938                 ++$filter_id_count;
    939             } else {
    940                 $obj_idx .= $function[0]->wp_filter_id;
    941             }
    942 
    943             return $obj_idx;
    944         }
     928        return spl_object_hash( $function[0] ) . $function[1];
    945929    } elseif ( is_string( $function[0] ) ) {
    946930        // Static Calling
Note: See TracChangeset for help on using the changeset viewer.