From 71080fa580d4a912972953eb3c5b1ba29ae04f8b Mon Sep 17 00:00:00 2001 From: Jonny Harris Date: Fri, 29 Sep 2023 10:18:05 +0000 Subject: [PATCH] Editor: Replace property_exists calls in block related functions with instanceof Replace calls to `property_exists` with `instanceof WP_Block_Type` in block related functions. This change not only improves type safety but also enhances performance. Follow on from [56678] and [56677]. Props gziolo, aristath, aaronrobertshaw, spacedmonkey. Fixes #59453 git-svn-id: https://develop.svn.wordpress.org/trunk@56742 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/block-supports/border.php | 2 +- src/wp-includes/block-supports/colors.php | 2 +- src/wp-includes/block-supports/typography.php | 4 ++-- src/wp-includes/class-wp-block-supports.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/wp-includes/block-supports/border.php b/src/wp-includes/block-supports/border.php index bb81e88134..a11c099d9e 100644 --- a/src/wp-includes/block-supports/border.php +++ b/src/wp-includes/block-supports/border.php @@ -152,7 +152,7 @@ function wp_apply_border_support( $block_type, $block_attributes ) { */ function wp_has_border_feature_support( $block_type, $feature, $default_value = false ) { // Check if all border support features have been opted into via `"__experimentalBorder": true`. - if ( property_exists( $block_type, 'supports' ) ) { + if ( $block_type instanceof WP_Block_Type ) { $block_type_supports_border = isset( $block_type->supports['__experimentalBorder'] ) ? $block_type->supports['__experimentalBorder'] : $default_value; diff --git a/src/wp-includes/block-supports/colors.php b/src/wp-includes/block-supports/colors.php index 053ec239dc..f14b718b88 100644 --- a/src/wp-includes/block-supports/colors.php +++ b/src/wp-includes/block-supports/colors.php @@ -17,7 +17,7 @@ */ function wp_register_colors_support( $block_type ) { $color_support = false; - if ( property_exists( $block_type, 'supports' ) ) { + if ( $block_type instanceof WP_Block_Type ) { $color_support = isset( $block_type->supports['color'] ) ? $block_type->supports['color'] : false; } $has_text_colors_support = true === $color_support || diff --git a/src/wp-includes/block-supports/typography.php b/src/wp-includes/block-supports/typography.php index 2358d304c4..bccde4f5c0 100644 --- a/src/wp-includes/block-supports/typography.php +++ b/src/wp-includes/block-supports/typography.php @@ -16,7 +16,7 @@ * @param WP_Block_Type $block_type Block Type. */ function wp_register_typography_support( $block_type ) { - if ( ! property_exists( $block_type, 'supports' ) ) { + if ( ! ( $block_type instanceof WP_Block_Type ) ) { return; } @@ -85,7 +85,7 @@ function wp_register_typography_support( $block_type ) { * @return array Typography CSS classes and inline styles. */ function wp_apply_typography_support( $block_type, $block_attributes ) { - if ( ! property_exists( $block_type, 'supports' ) ) { + if ( ! ( $block_type instanceof WP_Block_Type ) ) { return array(); } diff --git a/src/wp-includes/class-wp-block-supports.php b/src/wp-includes/class-wp-block-supports.php index ee2791dd17..afc011803b 100644 --- a/src/wp-includes/class-wp-block-supports.php +++ b/src/wp-includes/class-wp-block-supports.php @@ -142,7 +142,7 @@ class WP_Block_Supports { $block_registry = WP_Block_Type_Registry::get_instance(); $registered_block_types = $block_registry->get_all_registered(); foreach ( $registered_block_types as $block_type ) { - if ( ! property_exists( $block_type, 'supports' ) ) { + if ( ! ( $block_type instanceof WP_Block_Type ) ) { continue; } if ( ! $block_type->attributes ) {