Make WordPress Core


Ignore:
Timestamp:
09/08/2021 03:35:32 PM (3 years ago)
Author:
hellofromTonya
Message:

Code Modernization: Fix reserved keyword and parameter name mismatches for parent/child classes in Walker::start_el().

In the parent class, renames the parameter $object to $data_object.

Why? object is a PHP reserved keyword.

In each child class: renames the corresponding parameter to match the parent's method signature.

Why?

PHP 8 introduces the ability to pass named arguments to function/method calls. This means the child and parent method signatures (i.e. parameter names) need to match.

Changes for readability:

  • @since clearly specifies the original parameter name and its new name as well as why the change happened.
  • in methods longer than a single line, the generic parameter is reassigned to the original parameter restoring it for context for use within the method. An inline comment is added to explain why this reassignment is made.
  • in cases where the original parameter name was too generic, renamed (when reassigning) to a more descriptive name for use within the method.

Follow-up to [7737], [8900], [8970], [14248], [15077], [16100], [25642], [25644], [37051], [37054], [37056], [46271], [47189].

Props jrf, hellofromTonya, sergeybiryukov, azaozz, desrosj, johnbillion.
See #51553.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/includes/class-walker-nav-menu-edit.php

    r51010 r51739  
    4747     * @see Walker_Nav_Menu::start_el()
    4848     * @since 3.0.0
     49     * @since 5.9.0 Renamed `$item` to `$data_object` to match parent class for PHP 8 named parameter support.
    4950     *
    5051     * @global int $_wp_nav_menu_max_depth
    5152     *
    52      * @param string   $output Used to append additional content (passed by reference).
    53      * @param WP_Post  $item  Menu item data object.
    54      * @param int      $depth  Depth of menu item. Used for padding.
    55      * @param stdClass $args   Not used.
    56      * @param int      $id     Not used.
     53     * @param string   $output      Used to append additional content (passed by reference).
     54     * @param WP_Post  $data_object Menu item data object.
     55     * @param int      $depth       Depth of menu item. Used for padding.
     56     * @param stdClass $args        Not used.
     57     * @param int      $id          Not used.
    5758     */
    58     public function start_el( &$output, $item, $depth = 0, $args = null, $id = 0 ) {
     59    public function start_el( &$output, $data_object, $depth = 0, $args = null, $id = 0 ) {
    5960        global $_wp_nav_menu_max_depth;
     61
     62        // Restores the more descriptive, specific name for use within this method.
     63        $menu_item              = $data_object;
    6064        $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth;
    6165
    6266        ob_start();
    63         $item_id      = esc_attr( $item->ID );
     67        $item_id      = esc_attr( $menu_item->ID );
    6468        $removed_args = array(
    6569            'action',
     
    7377        $original_title = false;
    7478
    75         if ( 'taxonomy' === $item->type ) {
    76             $original_object = get_term( (int) $item->object_id, $item->object );
     79        if ( 'taxonomy' === $menu_item->type ) {
     80            $original_object = get_term( (int) $menu_item->object_id, $menu_item->object );
    7781            if ( $original_object && ! is_wp_error( $original_object ) ) {
    7882                $original_title = $original_object->name;
    7983            }
    80         } elseif ( 'post_type' === $item->type ) {
    81             $original_object = get_post( $item->object_id );
     84        } elseif ( 'post_type' === $menu_item->type ) {
     85            $original_object = get_post( $menu_item->object_id );
    8286            if ( $original_object ) {
    8387                $original_title = get_the_title( $original_object->ID );
    8488            }
    85         } elseif ( 'post_type_archive' === $item->type ) {
    86             $original_object = get_post_type_object( $item->object );
     89        } elseif ( 'post_type_archive' === $menu_item->type ) {
     90            $original_object = get_post_type_object( $menu_item->object );
    8791            if ( $original_object ) {
    8892                $original_title = $original_object->labels->archives;
     
    9296        $classes = array(
    9397            'menu-item menu-item-depth-' . $depth,
    94             'menu-item-' . esc_attr( $item->object ),
     98            'menu-item-' . esc_attr( $menu_item->object ),
    9599            'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id === $_GET['edit-menu-item'] ) ? 'active' : 'inactive' ),
    96100        );
    97101
    98         $title = $item->title;
    99 
    100         if ( ! empty( $item->_invalid ) ) {
     102        $title = $menu_item->title;
     103
     104        if ( ! empty( $menu_item->_invalid ) ) {
    101105            $classes[] = 'menu-item-invalid';
    102106            /* translators: %s: Title of an invalid menu item. */
    103             $title = sprintf( __( '%s (Invalid)' ), $item->title );
    104         } elseif ( isset( $item->post_status ) && 'draft' === $item->post_status ) {
     107            $title = sprintf( __( '%s (Invalid)' ), $menu_item->title );
     108        } elseif ( isset( $menu_item->post_status ) && 'draft' === $menu_item->post_status ) {
    105109            $classes[] = 'pending';
    106110            /* translators: %s: Title of a menu item in draft status. */
    107             $title = sprintf( __( '%s (Pending)' ), $item->title );
     111            $title = sprintf( __( '%s (Pending)' ), $menu_item->title );
    108112        }
    109113
    110         $title = ( ! isset( $item->label ) || '' === $item->label ) ? $title : $item->label;
     114        $title = ( ! isset( $menu_item->label ) || '' === $menu_item->label ) ? $title : $menu_item->label;
    111115
    112116        $submenu_text = '';
     
    125129                    </label>
    126130                    <span class="item-controls">
    127                         <span class="item-type"><?php echo esc_html( $item->type_label ); ?></span>
     131                        <span class="item-type"><?php echo esc_html( $menu_item->type_label ); ?></span>
    128132                        <span class="item-order hide-if-js">
    129133                            <?php
     
    186190
    187191            <div class="menu-item-settings wp-clearfix" id="menu-item-settings-<?php echo $item_id; ?>">
    188                 <?php if ( 'custom' === $item->type ) : ?>
     192                <?php if ( 'custom' === $menu_item->type ) : ?>
    189193                    <p class="field-url description description-wide">
    190194                        <label for="edit-menu-item-url-<?php echo $item_id; ?>">
    191195                            <?php _e( 'URL' ); ?><br />
    192                             <input type="text" id="edit-menu-item-url-<?php echo $item_id; ?>" class="widefat code edit-menu-item-url" name="menu-item-url[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->url ); ?>" />
     196                            <input type="text" id="edit-menu-item-url-<?php echo $item_id; ?>" class="widefat code edit-menu-item-url" name="menu-item-url[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->url ); ?>" />
    193197                        </label>
    194198                    </p>
     
    197201                    <label for="edit-menu-item-title-<?php echo $item_id; ?>">
    198202                        <?php _e( 'Navigation Label' ); ?><br />
    199                         <input type="text" id="edit-menu-item-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-title" name="menu-item-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->title ); ?>" />
     203                        <input type="text" id="edit-menu-item-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-title" name="menu-item-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->title ); ?>" />
    200204                    </label>
    201205                </p>
     
    203207                    <label for="edit-menu-item-attr-title-<?php echo $item_id; ?>">
    204208                        <?php _e( 'Title Attribute' ); ?><br />
    205                         <input type="text" id="edit-menu-item-attr-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-attr-title" name="menu-item-attr-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->post_excerpt ); ?>" />
     209                        <input type="text" id="edit-menu-item-attr-title-<?php echo $item_id; ?>" class="widefat edit-menu-item-attr-title" name="menu-item-attr-title[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->post_excerpt ); ?>" />
    206210                    </label>
    207211                </p>
    208212                <p class="field-link-target description">
    209213                    <label for="edit-menu-item-target-<?php echo $item_id; ?>">
    210                         <input type="checkbox" id="edit-menu-item-target-<?php echo $item_id; ?>" value="_blank" name="menu-item-target[<?php echo $item_id; ?>]"<?php checked( $item->target, '_blank' ); ?> />
     214                        <input type="checkbox" id="edit-menu-item-target-<?php echo $item_id; ?>" value="_blank" name="menu-item-target[<?php echo $item_id; ?>]"<?php checked( $menu_item->target, '_blank' ); ?> />
    211215                        <?php _e( 'Open link in a new tab' ); ?>
    212216                    </label>
     
    215219                    <label for="edit-menu-item-classes-<?php echo $item_id; ?>">
    216220                        <?php _e( 'CSS Classes (optional)' ); ?><br />
    217                         <input type="text" id="edit-menu-item-classes-<?php echo $item_id; ?>" class="widefat code edit-menu-item-classes" name="menu-item-classes[<?php echo $item_id; ?>]" value="<?php echo esc_attr( implode( ' ', $item->classes ) ); ?>" />
     221                        <input type="text" id="edit-menu-item-classes-<?php echo $item_id; ?>" class="widefat code edit-menu-item-classes" name="menu-item-classes[<?php echo $item_id; ?>]" value="<?php echo esc_attr( implode( ' ', $menu_item->classes ) ); ?>" />
    218222                    </label>
    219223                </p>
     
    221225                    <label for="edit-menu-item-xfn-<?php echo $item_id; ?>">
    222226                        <?php _e( 'Link Relationship (XFN)' ); ?><br />
    223                         <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->xfn ); ?>" />
     227                        <input type="text" id="edit-menu-item-xfn-<?php echo $item_id; ?>" class="widefat code edit-menu-item-xfn" name="menu-item-xfn[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->xfn ); ?>" />
    224228                    </label>
    225229                </p>
     
    227231                    <label for="edit-menu-item-description-<?php echo $item_id; ?>">
    228232                        <?php _e( 'Description' ); ?><br />
    229                         <textarea id="edit-menu-item-description-<?php echo $item_id; ?>" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description[<?php echo $item_id; ?>]"><?php echo esc_html( $item->description ); // textarea_escaped ?></textarea>
     233                        <textarea id="edit-menu-item-description-<?php echo $item_id; ?>" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description[<?php echo $item_id; ?>]"><?php echo esc_html( $menu_item->description ); // textarea_escaped ?></textarea>
    230234                        <span class="description"><?php _e( 'The description will be displayed in the menu if the current theme supports it.' ); ?></span>
    231235                    </label>
     
    238242                 * @since 5.4.0
    239243                 *
    240                  * @param int      $item_id Menu item ID.
    241                  * @param WP_Post  $item    Menu item data object.
    242                  * @param int      $depth   Depth of menu item. Used for padding.
    243                  * @param stdClass $args    An object of menu item arguments.
    244                  * @param int      $id      Nav menu ID.
     244                 * @param int      $item_id   Menu item ID.
     245                 * @param WP_Post  $menu_item Menu item data object.
     246                 * @param int      $depth     Depth of menu item. Used for padding.
     247                 * @param stdClass $args      An object of menu item arguments.
     248                 * @param int      $id        Nav menu ID.
    245249                 */
    246                 do_action( 'wp_nav_menu_item_custom_fields', $item_id, $item, $depth, $args, $id );
     250                do_action( 'wp_nav_menu_item_custom_fields', $item_id, $menu_item, $depth, $args, $id );
    247251                ?>
    248252
     
    257261
    258262                <div class="menu-item-actions description-wide submitbox">
    259                     <?php if ( 'custom' !== $item->type && false !== $original_title ) : ?>
     263                    <?php if ( 'custom' !== $menu_item->type && false !== $original_title ) : ?>
    260264                        <p class="link-to-original">
    261265                            <?php
    262266                            /* translators: %s: Link to menu item's original object. */
    263                             printf( __( 'Original: %s' ), '<a href="' . esc_attr( $item->url ) . '">' . esc_html( $original_title ) . '</a>' );
     267                            printf( __( 'Original: %s' ), '<a href="' . esc_attr( $menu_item->url ) . '">' . esc_html( $original_title ) . '</a>' );
    264268                            ?>
    265269                        </p>
     
    304308
    305309                <input class="menu-item-data-db-id" type="hidden" name="menu-item-db-id[<?php echo $item_id; ?>]" value="<?php echo $item_id; ?>" />
    306                 <input class="menu-item-data-object-id" type="hidden" name="menu-item-object-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object_id ); ?>" />
    307                 <input class="menu-item-data-object" type="hidden" name="menu-item-object[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->object ); ?>" />
    308                 <input class="menu-item-data-parent-id" type="hidden" name="menu-item-parent-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_item_parent ); ?>" />
    309                 <input class="menu-item-data-position" type="hidden" name="menu-item-position[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->menu_order ); ?>" />
    310                 <input class="menu-item-data-type" type="hidden" name="menu-item-type[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $item->type ); ?>" />
     310                <input class="menu-item-data-object-id" type="hidden" name="menu-item-object-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->object_id ); ?>" />
     311                <input class="menu-item-data-object" type="hidden" name="menu-item-object[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->object ); ?>" />
     312                <input class="menu-item-data-parent-id" type="hidden" name="menu-item-parent-id[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->menu_item_parent ); ?>" />
     313                <input class="menu-item-data-position" type="hidden" name="menu-item-position[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->menu_order ); ?>" />
     314                <input class="menu-item-data-type" type="hidden" name="menu-item-type[<?php echo $item_id; ?>]" value="<?php echo esc_attr( $menu_item->type ); ?>" />
    311315            </div><!-- .menu-item-settings-->
    312316            <ul class="menu-item-transport"></ul>
Note: See TracChangeset for help on using the changeset viewer.