Working With Switch and If Statements in PhpStorm 2016.1
We’re all told that great developers refactor often (I looked for a quote on who said that, but couldn’t find anyone, so now it’s mine). Refactoring can be a tedious job, but PhpStorm’s intentions can help you break away from the tedium and get the task done quicker.
New in PhpStorm 2016.1 are a couple of intentions specifically designed to make refactoring between `switch` and `if` statements as painless as possible. Let’s consider this code:
$name = 'Luke'; if ( $name == 'Luke' ) { $type = 'Jedi'; } elseif ( $name == 'Vader' ) { $type = 'Sith'; } elseif ( $name == 'Jar Jar') { $type = 'Fool'; } else { $type = 'Unknown'; }
This code is not the nicest-looking in the world; arguably it would be better suited to a `switch` statement. Thankfully, in the latest version of PhpStorm flipping between `switch` and `if` is easy thanks to the new intention.
Here you can see that we use the Quick-fix keyboard shortcut (Alt + Enter on Windows/Linux, Cmd + Enter on Mac) to see what intentions we can invoke at the location of the caret. We pick “Replace ‘if’ with ‘switch'” and voila, our complex `if` statement is replaced with a nice, readable` switch` statement.
We can also convert the`switch` back to an `if/else` by invoking the opposite intention in exactly the same way.
Give it a try and let us know what you think. We’re also interested to hear what other refactoring intentions you’d like to see in the future.
– Gary and the PhpStorm Team
The Drive to Develop