Feature #15194


PHPCS sniff for un-restored switch_to_blog() calls

Added by Boone Gorges 11 months ago. Updated 6 months ago.

Priority name:
Category name:
Internal Tools and Workflow
Target version:
Start date:
Due date:
% Done:


Estimated time:
Deployment actions:


When switch_to_blog() is called but not properly "closed" via restore_current_blog(), havoc ensues. The most recent instance of this is #15170.

We should introduce a PHPCS sniff to our custom ruleset that looks for switch_to_blog(), and then ensures that all code paths out of the method have a restore_current_blog() before returning.

Actions #1

Updated by Boone Gorges 11 months ago

I just spent five minutes looking, and it's not immediately obvious to me how to do this in PHPCS. Here's the one custom sniff I've written: I think it would work similar to this, in that you'd find instances of `switch_to_blog()`, then parse all remaining tokens until you get to the end of the method. You'd have to identify the difference between various code paths (like stuff in an if block - not sure how to do that) and look for all possible ways to return from the method; then verify that each of the paths has a restore_current_blog().

Let's file this away as a project we can tackle once our scope for the academic year becomes clearer.

Actions #2

Updated by Boone Gorges 8 months ago

  • Assignee changed from Boone Gorges to Jeremy Felt

Tentatively assigning to Jeremy for research.

Actions #3

Updated by Boone Gorges 6 months ago

  • Target version changed from 2.0.0 to 2.1.0

Also available in: Atom PDF