Skip to content

Code Quality: Fix Customizer component PHPDoc types - #13795

Open
arshidkv12 wants to merge 5 commits into
WordPress:trunkfrom
arshidkv12:empty-2
Open

arshidkv12 wants to merge 5 commits into
WordPress:trunkfrom
arshidkv12:empty-2

Conversation

@arshidkv12

Copy link
Copy Markdown

In 65817

Use the Customizer components list to determine which starter content
should be processed instead of checking whether the corresponding
properties are non-empty. r38991

This ensures that widgets, navigation menus, attachments, and posts
are handled according to the enabled Customizer components.
It also updates the dependency check for the
nav_menus_created_posts setting. r39346

Use of AI Tools

AI assistance: Yes
Tool(s): ChatGPT
Model(s): GPT-5.6 Luna
Used for: Reviewing PHPStan findings and discussing possible fixes. The final implementation and changes were reviewed and made by me.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props arshidkv12, mukesh27.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@github-actions

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

@mukeshpanchal27 mukeshpanchal27 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR!

Fixing the two docblocks to WP_Customize_Widgets|null and WP_Customize_Nav_Menus|null clears both baseline entries with zero changes to production code, and leaves the file documenting what actually happens.

@arshidkv12

Copy link
Copy Markdown
Author

Thank you

@mukeshpanchal27

Copy link
Copy Markdown
Member

@arshidkv12 the PR title says it replaces the empty() checks, but it only fixes the types. Make sure to update it.

@mukeshpanchal27
mukeshpanchal27 requested a lite review from Copilot October 1, 2026 06:01
@arshidkv12 arshidkv12 changed the title Code Quality:Replace empty() checks for Customizer components Code Quality: Fix Customizer component PHPDoc types Oct 1, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The functional refactor is missing and baseline removals expose unresolved PHPStan errors.

Review effort: Lite
Findings: 1 High severity · 1 Medium severity

Open (2)
What changed in this PR

This PR updates Customizer property annotations and removes related PHPStan baseline suppressions, but does not implement the described empty() check refactor.

Changes:

  • Marks widget and navigation-menu properties nullable.
  • Removes corresponding PHPStan baseline entries.
  • Existing empty() checks remain, leaving the functional change incomplete.
File Summary
tests/​phpstan/​baselines/​empty.property.neon Removes suppressions while the corresponding source checks remain, causing PHPStan failures.
src/​wp-includes/​class-wp-customize-manager.php Updates annotations, but does not use the filtered component list for starter-content processing.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@@ -28,16 +28,6 @@ parameters:
identifier: empty.property
count: 1
path: ../../../src/wp-includes/class-wp-customize-control.php
*
* @since 3.9.0
* @var WP_Customize_Widgets
* @var WP_Customize_Widgets|null
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants