From b207c17edf61235368e136a38e2a2129a7d6c582 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sun, 23 Nov 2025 10:56:59 +0100 Subject: [PATCH 1/5] NamingConventions/PrefixAllGlobals: update the functions list based on WP 6.9.0-RC2 Based on a scan of WP Core at commit WordPress/wordpress-develop@87e656 using a preliminary sniff created for issue 1803. --- .../NamingConventions/PrefixAllGlobalsSniff.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php b/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php index 686075042c..fb5b1bdb02 100644 --- a/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php +++ b/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php @@ -149,7 +149,7 @@ final class PrefixAllGlobalsSniff extends AbstractFunctionParameterSniff { * Only overrulable constants are listed, i.e. those defined within core within * a `if ( ! defined() ) {}` wrapper. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 1.0.0 * @since 3.0.0 Renamed from `$whitelisted_core_constants` to `$allowed_core_constants`. @@ -203,7 +203,7 @@ final class PrefixAllGlobalsSniff extends AbstractFunctionParameterSniff { * * Note: deprecated functions should still be included in this list as plugins may support older WP versions. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0. * @@ -342,7 +342,11 @@ final class PrefixAllGlobalsSniff extends AbstractFunctionParameterSniff { 'wp_cache_flush_group' => true, 'wp_cache_flush_runtime' => true, 'wp_cache_get_multiple' => true, + 'wp_cache_get_multiple_salted' => true, + 'wp_cache_get_salted' => true, 'wp_cache_set_multiple' => true, + 'wp_cache_set_multiple_salted' => true, + 'wp_cache_set_salted' => true, 'wp_cache_supports' => true, 'wp_check_password' => true, 'wp_clear_auth_cookie' => true, @@ -392,7 +396,7 @@ final class PrefixAllGlobalsSniff extends AbstractFunctionParameterSniff { * * Note: deprecated classes should still be included in this list as plugins may support older WP versions. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0. * @@ -407,6 +411,7 @@ final class PrefixAllGlobalsSniff extends AbstractFunctionParameterSniff { 'TwentyTwenty_Walker_Comment' => true, 'TwentyTwenty_Walker_Page' => true, 'Twenty_Twenty_One_Customize' => true, + 'WP_Block_Cloner' => true, 'WP_User_Search' => true, 'wp_atom_server' => true, // Deprecated. ); From 5bb8db0e577b8aeeebdcf402ccda7d034e252ebb Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sun, 23 Nov 2025 11:57:24 +0100 Subject: [PATCH 2/5] WP/ClassNameCase: update the class lists based on WP 6.9.0-RC2 Based on a scan of WP Core at commit WordPress/wordpress-develop@87e656 using a preliminary sniff created for issue 1803. --- WordPress/Sniffs/WP/ClassNameCaseSniff.php | 37 ++++++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/WordPress/Sniffs/WP/ClassNameCaseSniff.php b/WordPress/Sniffs/WP/ClassNameCaseSniff.php index 1c3ce88f24..ef8170e275 100644 --- a/WordPress/Sniffs/WP/ClassNameCaseSniff.php +++ b/WordPress/Sniffs/WP/ClassNameCaseSniff.php @@ -25,7 +25,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -115,6 +115,10 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'Walker_Page', 'Walker_PageDropdown', 'WP', + 'WP_Abilities_Registry', + 'WP_Ability', + 'WP_Ability_Categories_Registry', + 'WP_Ability_Category', 'WP_Admin_Bar', 'WP_Ajax_Response', 'WP_Ajax_Upgrader_Skin', @@ -124,6 +128,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'WP_Block', 'WP_Block_Bindings_Registry', 'WP_Block_Bindings_Source', + 'WP_Block_Cloner', 'WP_Block_Editor_Context', 'WP_Block_List', 'WP_Block_Metadata_Registry', @@ -132,6 +137,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'WP_Block_Parser_Frame', 'WP_Block_Pattern_Categories_Registry', 'WP_Block_Patterns_Registry', + 'WP_Block_Processor', 'WP_Block_Styles_Registry', 'WP_Block_Supports', 'WP_Block_Template', @@ -269,6 +275,9 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'WP_Privacy_Policy_Content', 'WP_Privacy_Requests_Table', 'WP_Query', + 'WP_REST_Abilities_V1_Categories_Controller', + 'WP_REST_Abilities_V1_List_Controller', + 'WP_REST_Abilities_V1_Run_Controller', 'WP_REST_Application_Passwords_Controller', 'WP_REST_Attachments_Controller', 'WP_REST_Autosaves_Controller', @@ -423,7 +432,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -455,7 +464,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.1.0 * @@ -477,7 +486,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -513,7 +522,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -521,9 +530,16 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * The constructor will add the lowercased class name as a key to each entry. */ private $phpmailer_classes = array( + // Classes. + 'PHPMailer\\PHPMailer\\DSNConfigurator', 'PHPMailer\\PHPMailer\\Exception', + 'PHPMailer\\PHPMailer\\OAuth', 'PHPMailer\\PHPMailer\\PHPMailer', + 'PHPMailer\\PHPMailer\\POP3', 'PHPMailer\\PHPMailer\\SMTP', + + // Interfaces. + 'PHPMailer\\PHPMailer\\OAuthTokenProvider', ); /** @@ -531,7 +547,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -675,7 +691,7 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { * * Note: this list will be enhanced in the class constructor. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * @@ -690,6 +706,8 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'SimplePie\Cache\Base', 'SimplePie\Cache\DataCache', 'SimplePie\Cache\NameFilter', + 'SimplePie\HTTP\Client', + 'SimplePie\HTTP\Response', 'SimplePie\RegistryAware', // Classes, SimplePie v1. @@ -750,7 +768,12 @@ final class ClassNameCaseSniff extends AbstractClassRestrictionsSniff { 'SimplePie\Exception', 'SimplePie\File', 'SimplePie\Gzdecode', + 'SimplePie\HTTP\ClientException', + 'SimplePie\HTTP\FileClient', 'SimplePie\HTTP\Parser', + 'SimplePie\HTTP\Psr7Response', + 'SimplePie\HTTP\Psr18Client', + 'SimplePie\HTTP\RawTextResponse', 'SimplePie\IRI', 'SimplePie\Item', 'SimplePie\Locator', From 48a519f4c20e9aacb9602eb7904da3f2506d3a85 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sun, 23 Nov 2025 12:29:14 +0100 Subject: [PATCH 3/5] WP/DeprecatedFunctions: update the functions list based on WP 6.9.0-RC2 Based on a scan of WP Core at commit WordPress/wordpress-develop@87e656 using a preliminary sniff created for issue 1803. Includes tests. --- WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php | 14 +++++++++++++- .../Tests/WP/DeprecatedFunctionsUnitTest.1.inc | 3 +++ WordPress/Tests/WP/DeprecatedFunctionsUnitTest.php | 5 +++-- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php b/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php index 745b9ea206..6b74d6294b 100644 --- a/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php +++ b/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php @@ -43,7 +43,7 @@ final class DeprecatedFunctionsSniff extends AbstractFunctionRestrictionsSniff { * To retrieve a function list for comparison, the following tool is available: * https://github.com/JDGrimes/wp-deprecated-code-scanner * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @var array */ @@ -1708,6 +1708,18 @@ final class DeprecatedFunctionsSniff extends AbstractFunctionRestrictionsSniff { 'alt' => 'wp_enqueue_classic_theme_styles()', 'version' => '6.8.0', ), + + // WP 6.9.0. + // Note: the deprecation of the (polyfilled) `utf8_encode()` and `utf8_decode()` functions is deliberately + // not listed here as these are polyfills for the PHP native functions, not WP native functions. + 'seems_utf8' => array( + 'alt' => 'wp_is_valid_utf8()', + 'version' => '6.9.0', + ), + 'wp_print_auto_sizes_contain_css_fix' => array( + 'alt' => 'wp_enqueue_img_auto_sizes_contain_css_fix()', + 'version' => '6.9.0', + ), ); /** diff --git a/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.1.inc b/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.1.inc index 5d8281d6cb..4abf47c46d 100644 --- a/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.1.inc +++ b/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.1.inc @@ -441,3 +441,6 @@ wp_targeted_link_rel(); wp_targeted_link_rel_callback(); /* ============ WP 6.8 ============ */ wp_add_editor_classic_theme_styles(); +/* ============ WP 6.9 ============ */ +seems_utf8(); +wp_print_auto_sizes_contain_css_fix(); diff --git a/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.php b/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.php index fb53e37231..7813bede2d 100644 --- a/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.php +++ b/WordPress/Tests/WP/DeprecatedFunctionsUnitTest.php @@ -110,14 +110,15 @@ public function getWarningList( $testFile = '' ) { switch ( $testFile ) { case 'DeprecatedFunctionsUnitTest.1.inc': $start_line = 426; - $end_line = 443; + $end_line = 446; $warnings = array_fill( $start_line, ( ( $end_line - $start_line ) + 1 ), 1 ); // Unset the lines related to version comments. unset( $warnings[429], $warnings[432], - $warnings[442] + $warnings[442], + $warnings[444] ); return $warnings; From 75539a4b2754883d61961f75ac49b4253c2b6db9 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sun, 23 Nov 2025 12:37:14 +0100 Subject: [PATCH 4/5] WP/DeprecatedParameters: update the functions list based on WP 6.9.0-RC2 Based on a scan of WP Core at commit WordPress/wordpress-develop@87e656 using a preliminary sniff created for issue 1803. Includes tests. --- WordPress/Sniffs/WP/DeprecatedParametersSniff.php | 9 ++++++++- WordPress/Tests/WP/DeprecatedParametersUnitTest.inc | 1 + WordPress/Tests/WP/DeprecatedParametersUnitTest.php | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/WordPress/Sniffs/WP/DeprecatedParametersSniff.php b/WordPress/Sniffs/WP/DeprecatedParametersSniff.php index 9db68986e3..265035f249 100644 --- a/WordPress/Sniffs/WP/DeprecatedParametersSniff.php +++ b/WordPress/Sniffs/WP/DeprecatedParametersSniff.php @@ -50,7 +50,7 @@ final class DeprecatedParametersSniff extends AbstractFunctionParameterSniff { * * The functions are ordered alphabetically. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 0.12.0 * @@ -86,6 +86,13 @@ final class DeprecatedParametersSniff extends AbstractFunctionParameterSniff { 'version' => '5.9.0', ), ), + '_wp_can_use_pcre_u' => array( + 1 => array( + 'name' => 'set', + 'value' => null, + 'version' => '6.9.0', + ), + ), '_wp_post_revision_fields' => array( 2 => array( 'name' => 'deprecated', diff --git a/WordPress/Tests/WP/DeprecatedParametersUnitTest.inc b/WordPress/Tests/WP/DeprecatedParametersUnitTest.inc index 1fc0c27b04..027a2a47cc 100644 --- a/WordPress/Tests/WP/DeprecatedParametersUnitTest.inc +++ b/WordPress/Tests/WP/DeprecatedParametersUnitTest.inc @@ -99,3 +99,4 @@ global_terms( $foo, 'deprecated' ); // All will give an WARNING as they have been deprecated after WP 6.5. inject_ignored_hooked_blocks_metadata_attributes('', 'deprecated'); wp_render_elements_support_styles('deprecated'); +_wp_can_use_pcre_u('deprecated'); diff --git a/WordPress/Tests/WP/DeprecatedParametersUnitTest.php b/WordPress/Tests/WP/DeprecatedParametersUnitTest.php index 3d516ec983..5d120db624 100644 --- a/WordPress/Tests/WP/DeprecatedParametersUnitTest.php +++ b/WordPress/Tests/WP/DeprecatedParametersUnitTest.php @@ -54,6 +54,7 @@ public function getWarningList() { return array( 100 => 1, 101 => 1, + 102 => 1, ); } } From 5ffaf4a4e54a64d758c3a507333929980a172773 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sun, 23 Nov 2025 12:40:44 +0100 Subject: [PATCH 5/5] Various sniffs: update docs ... to document when the lists were verified against WP Core last. --- WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php | 2 +- WordPress/Sniffs/WP/CapabilitiesSniff.php | 2 +- WordPress/Sniffs/WP/DeprecatedClassesSniff.php | 2 +- WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php b/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php index 67c90225a4..f5cb955b03 100644 --- a/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php +++ b/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php @@ -63,7 +63,7 @@ final class ValidPostTypeSlugSniff extends AbstractFunctionParameterSniff { * * Source: {@link https://developer.wordpress.org/reference/functions/register_post_type/#reserved-post-types} * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 2.2.0 * diff --git a/WordPress/Sniffs/WP/CapabilitiesSniff.php b/WordPress/Sniffs/WP/CapabilitiesSniff.php index fc2b0b34a9..758359f9c6 100644 --- a/WordPress/Sniffs/WP/CapabilitiesSniff.php +++ b/WordPress/Sniffs/WP/CapabilitiesSniff.php @@ -173,7 +173,7 @@ final class CapabilitiesSniff extends AbstractFunctionParameterSniff { * * List is sorted alphabetically. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 3.0.0 * diff --git a/WordPress/Sniffs/WP/DeprecatedClassesSniff.php b/WordPress/Sniffs/WP/DeprecatedClassesSniff.php index 8f67cb48f4..eec0d8f7cc 100644 --- a/WordPress/Sniffs/WP/DeprecatedClassesSniff.php +++ b/WordPress/Sniffs/WP/DeprecatedClassesSniff.php @@ -41,7 +41,7 @@ final class DeprecatedClassesSniff extends AbstractClassRestrictionsSniff { * * Version numbers should be fully qualified. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @var array */ diff --git a/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php b/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php index a4013892e0..1eefb6596c 100644 --- a/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php +++ b/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php @@ -43,7 +43,7 @@ final class DeprecatedParameterValuesSniff extends AbstractFunctionParameterSnif * looking for `_deprecated_argument()`. * The list is sorted alphabetically by function name. * - * {@internal To be updated after every major release. Last updated for WordPress 6.8.1.} + * {@internal To be updated after every major release. Last updated for WordPress 6.9.0-RC2.} * * @since 1.0.0 * @since 3.0.0 The format of the value has changed to support function calls