From f2282f68c0a416e999fcabef5e8680fba4e9a47d Mon Sep 17 00:00:00 2001 From: dmsnell Date: Sat, 5 Oct 2024 16:28:14 +0000 Subject: [PATCH] WP_Debug_Data: Extract `wp-paths-sizes` data into separate methods. This is the tenth part in a larger modularization of the data in `WP_Debug_Data`. Previously this was a single massive method drawing in debug data from various groups of related data, where the groups were independent from each other. This patch separates the eleventh of twelve groups, the `wp-paths-sizes` info, into a separate method focused on that data. This work precedes changes to make the `WP_Debug_Data` class more extensible for better use by plugin and theme code. Developed in https://github.com/wordpress/wordpress-develop/pull/7445 Discussed in https://core.trac.wordpress.org/ticket/61648 Props apermo, dmsnell. See #61648. Built from https://develop.svn.wordpress.org/trunk@59175 git-svn-id: http://core.svn.wordpress.org/trunk@58570 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-admin/includes/class-wp-debug-data.php | 170 ++++++++++++---------- wp-includes/version.php | 2 +- 2 files changed, 94 insertions(+), 78 deletions(-) diff --git a/wp-admin/includes/class-wp-debug-data.php b/wp-admin/includes/class-wp-debug-data.php index 59665aae08a..ece6b499bb7 100644 --- a/wp-admin/includes/class-wp-debug-data.php +++ b/wp-admin/includes/class-wp-debug-data.php @@ -56,7 +56,7 @@ public static function debug_data() { */ $info = array( 'wp-core' => self::get_wp_core(), - 'wp-paths-sizes' => array(), + 'wp-paths-sizes' => self::get_wp_paths_sizes(), 'wp-dropins' => self::get_wp_dropins(), 'wp-active-theme' => array(), 'wp-parent-theme' => array(), @@ -71,18 +71,17 @@ public static function debug_data() { 'wp-filesystem' => self::get_wp_filesystem(), ); - // Remove debug data which is only relevant on single-site installs. - if ( is_multisite() ) { - unset( $info['wp-paths-sizes'] ); - } - - if ( ! $is_multisite ) { - $info['wp-paths-sizes'] = array( - /* translators: Filesystem directory paths and storage sizes. */ - 'label' => __( 'Directories and Sizes' ), - 'fields' => array(), - ); - } + /* + * Remove null elements from the array. The individual methods are + * allowed to return `null`, which communicates that the category + * of debug data isn't relevant and shouldn't be passed through. + */ + $info = array_filter( + $info, + static function ( $section ) { + return isset( $section ); + } + ); $info['wp-active-theme'] = array( 'label' => __( 'Active Theme' ), @@ -100,69 +99,6 @@ public static function debug_data() { 'fields' => array(), ); - // Remove accordion for Directories and Sizes if in Multisite. - if ( ! $is_multisite ) { - $loading = __( 'Loading…' ); - - $info['wp-paths-sizes']['fields'] = array( - 'wordpress_path' => array( - 'label' => __( 'WordPress directory location' ), - 'value' => untrailingslashit( ABSPATH ), - ), - 'wordpress_size' => array( - 'label' => __( 'WordPress directory size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'uploads_path' => array( - 'label' => __( 'Uploads directory location' ), - 'value' => $upload_dir['basedir'], - ), - 'uploads_size' => array( - 'label' => __( 'Uploads directory size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'themes_path' => array( - 'label' => __( 'Themes directory location' ), - 'value' => get_theme_root(), - ), - 'themes_size' => array( - 'label' => __( 'Themes directory size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'plugins_path' => array( - 'label' => __( 'Plugins directory location' ), - 'value' => WP_PLUGIN_DIR, - ), - 'plugins_size' => array( - 'label' => __( 'Plugins directory size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'fonts_path' => array( - 'label' => __( 'Fonts directory location' ), - 'value' => wp_get_font_dir()['basedir'], - ), - 'fonts_size' => array( - 'label' => __( 'Fonts directory size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'database_size' => array( - 'label' => __( 'Database size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - 'total_size' => array( - 'label' => __( 'Total installation size' ), - 'value' => $loading, - 'debug' => 'loading...', - ), - ); - } - // Populate the section for the currently active theme. $theme_features = array(); @@ -1133,7 +1069,7 @@ private static function get_wp_media(): array { /** - * Gets the WordPress plugins section of the debug data. + * Gets the WordPress MU plugins section of the debug data. * * @since 6.7.0 * @@ -1183,6 +1119,86 @@ private static function get_wp_mu_plugins(): array { ); } + /** + * Gets the WordPress paths and sizes section of the debug data. + * + * @since 6.7.0 + * + * @return array|null Paths and sizes debug data for single sites, + * otherwise `null` for multi-site installs. + */ + private static function get_wp_paths_sizes(): ?array { + if ( is_multisite() ) { + return null; + } + + $loading = __( 'Loading…' ); + + $fields = array( + 'wordpress_path' => array( + 'label' => __( 'WordPress directory location' ), + 'value' => untrailingslashit( ABSPATH ), + ), + 'wordpress_size' => array( + 'label' => __( 'WordPress directory size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'uploads_path' => array( + 'label' => __( 'Uploads directory location' ), + 'value' => wp_upload_dir()['basedir'], + ), + 'uploads_size' => array( + 'label' => __( 'Uploads directory size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'themes_path' => array( + 'label' => __( 'Themes directory location' ), + 'value' => get_theme_root(), + ), + 'themes_size' => array( + 'label' => __( 'Themes directory size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'plugins_path' => array( + 'label' => __( 'Plugins directory location' ), + 'value' => WP_PLUGIN_DIR, + ), + 'plugins_size' => array( + 'label' => __( 'Plugins directory size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'fonts_path' => array( + 'label' => __( 'Fonts directory location' ), + 'value' => wp_get_font_dir()['basedir'], + ), + 'fonts_size' => array( + 'label' => __( 'Fonts directory size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'database_size' => array( + 'label' => __( 'Database size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + 'total_size' => array( + 'label' => __( 'Total installation size' ), + 'value' => $loading, + 'debug' => 'loading...', + ), + ); + + return array( + /* translators: Filesystem directory paths and storage sizes. */ + 'label' => __( 'Directories and Sizes' ), + 'fields' => $fields, + ); + } + /** * Gets the WordPress active plugins section of the debug data. * diff --git a/wp-includes/version.php b/wp-includes/version.php index f34168afa68..d160b6bff54 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.7-beta1-59174'; +$wp_version = '6.7-beta1-59175'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.