-
Notifications
You must be signed in to change notification settings - Fork 798
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Jetpack: Fix various PhanUndefined issues #37344
Conversation
Notable changes: * Remove `Jetpack_User_Agent_Info::is_OperaMobile()`. #16434 removed the jetpack-device-detect function this was calling in October 2021, but missed this caller. * Remove `jetpack_server_sandbox()` and `jetpack_server_sandbox_request_parameters()`. Due to a wrong namespace in #21128, they'd have thrown fatals since October 2021. * Use `$skin` instead of `$upgrader->skin`, it's the same object but not typed as a parent class. Should be no change to functionality. * Add some missing methods to `WPCOM_JSON_API`. * Add some missing abstract methods to SAL_Site, and implement in Jetpack_Site. * Fix `SAL_Token::is_global()`. * Remove `views/admin/deactivation-dialog.php`, unused since #21048 in November 2021. * Add `@phan-var-force` in a lot of "template" files. I'm not entirely happy with this, it pollutes the global scope for any subsequent files processed, but short of writing a Phan plugin that somehow adjusts the scope for only the file I can't find a better idea.
Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.
Interested in more tips and information?
|
Thank you for your PR! When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:
This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖 The e2e test report can be found here. Please note that it can take a few minutes after the e2e tests checks are complete for the report to be available. Once your PR is ready for review, check one last time that all required checks appearing at the bottom of this PR are passing or skipped. Jetpack plugin: The Jetpack plugin has different release cadences depending on the platform:
If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. |
…n a different namespace in old phpunit
* The feature formerly here is now found in `Automattic\Jetpack\Connection\Server_Sandbox` | ||
* in the jetpack-connection package. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to keep this file? If so, maybe we should put a "since" mention in the comment so 2 years down the road it's clear it's safe to remove.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to keep this file?
Not sure.
If so, maybe we should put a "since" mention in the comment so 2 years down the road it's clear it's safe to remove.
Good idea, I'll do that.
…entirely, it hasn't been loaded since 11.4.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few inline thoughts. I'm also not a fan of phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
without enabling later. Too bad PHPCS can't ignore a specific variable!
@@ -34,7 +37,7 @@ class="widefat jetpack-simple-payments-products" | |||
id="<?php echo esc_attr( $this->get_field_id( 'product_post_id' ) ); ?>" | |||
name="<?php echo esc_attr( $this->get_field_name( 'product_post_id' ) ); ?>"> | |||
<?php foreach ( $product_posts as $product_post ) { ?> | |||
<option value="<?php echo esc_attr( $product_post->ID ); ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> | |||
<option value="<?php echo esc_attr( (string) $product_post->ID ); ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not this?
<option value="<?php echo esc_attr( (string) $product_post->ID ); ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> | |
<option value="<?php echo (int) $product_post->ID; ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
projects/plugins/jetpack/tests/php/sync/server/class.jetpack-sync-test-replicastore.php
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also not a fan of
phpcs:disable VariableAnalysis.CodeAnalysis.VariableAnalysis.UndefinedVariable
without enabling later. Too bad PHPCS can't ignore a specific variable!
It would have to go at the very end of the files, so it wouldn't make any real difference. As the comment notes, we're relying on Phan to flag undefined globals instead for these.
@@ -34,7 +37,7 @@ class="widefat jetpack-simple-payments-products" | |||
id="<?php echo esc_attr( $this->get_field_id( 'product_post_id' ) ); ?>" | |||
name="<?php echo esc_attr( $this->get_field_name( 'product_post_id' ) ); ?>"> | |||
<?php foreach ( $product_posts as $product_post ) { ?> | |||
<option value="<?php echo esc_attr( $product_post->ID ); ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> | |||
<option value="<?php echo esc_attr( (string) $product_post->ID ); ?>" <?php selected( (int) $instance['product_post_id'], $product_post->ID ); ?>> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Proposed changes:
Notable changes:
Jetpack_User_Agent_Info::is_OperaMobile()
. Janitorial: clean up deprecated code #16434 removed the jetpack-device-detect function this was calling in October 2021, but missed this caller.jetpack_server_sandbox()
andjetpack_server_sandbox_request_parameters()
. Due to a wrong namespace in Server Sandbox: Move the server sandbox to the connection package #21128, they'd have thrown fatals since October 2021.$skin
instead of$upgrader->skin
, it's the same object but not typed as a parent class. Should be no change to functionality.WPCOM_JSON_API
.SAL_Token::is_global()
.views/admin/deactivation-dialog.php
, unused since Jetpack: Extend disconnection dialog component to handle multiple steps and accept more props #21048 in November 2021.@phan-var-force
in a lot of "template" files. I'm not entirely happy with this, it pollutes the global scope for any subsequent files processed, but short of writing a Phan plugin that somehow adjusts the scope for only the file I can't find a better idea.Other information:
Jetpack product discussion
None
Does this pull request change what data or activity we track or use?
No
Testing instructions: