My PhpStorm settings after 8 years of use

Published on January 15th, 2020

It's been a long time. I've been using PhpStorm for almost 8 years now. More precisely from 2012. Version 3 back then. A lot has happened in that time. A lot has changed. Of course, you learn more and more every day. This article is the result of my 8 years of experience with PhpStorm and my best settings that make you a faster developer and let you focus more on the important things.

If you don't care about the exact settings and what they are used for, you can download my snapshot (including my personal GitHub and Material Theme) and just import it into PhpStorm via File > Import Settings. Just scroll to the end of this post and you'll find anything you need.

My Best Settings

I'll show you only the settings you've to change that are different from the default. Either I'm gonna show you a [ ] for unselect or [x] for select.

General

Hide everything you don't need.

View > Appearance

  • [ ] Toolbar
  • [ ] Tool Window Bars
  • [ ] Status Bar
  • [ ] Navigation bar

Settings

Appearance & Behaviour > Appearance

  • [ ] Animate windows
    Doesn't improve anything but decreases performance
  • [x] Show memory indicator
    If you are using the status bar to give you better insights into your memory usage
  • [ ] Show tool window bars
    Removes some more bars
  • [ ] Show tool window numbers
    Removes some more bars

Appearance & Behaviour > System Settings

  • [ ] Reopen last project on startup
    I work on several projects, so I want to choose which project should be opened at the beginning
  • [ ] Confirm application exit
    If I want to exit the application it just should close without any confirmation
  • [x] Open project in new window
    PhpStorm gives you the possibility to open a project in the same window as the current one. This is in 99% not the thing you want.

Appearance & Behaviour > File Colors

  • [ ] Enable File Colors
  • [ ] Use in Editor Tabs
  • [ ] Use in Project View

Maybe you like it or not. I don't. These options remove the file colors and background colors from the tabs and project tree for some special folders like node_modules or tests.

Keymap

I just changed some of the keymaps. Basically I'm using the default ones.

  • Ctrl + V Split Vertically
  • Ctrl + H Split Horizontally
  • Cmd + T Run...
    If you are in a test file you just press this keymap within a method and then this method will be tested.
  • Shift + Cmd + T Run
    This keymap can be used anywhere in the application. It just runs that last test again.
  • Ctrl + W Hide Active Tool Window
    When you run tests, the test window opens. If you're using the terminal in PhpStorm, this can be useful too. With this shortcut, you can close that at any time.
  • Cmd + 2 Select in Project View
    You might now know this. With Cmd + 1 you can toggle the sidebar. What I still often need is to jump into the sidebar project tree. I often use Shift + Shift that lets you search for everything or Cmd + O to search for classes. So I never use the sidebar. But if you would like to jump into that with the file that is currently open, this shortcut is awesome.

Editor > General

  • [ ] Enable Drag'n'Drop functionaliy in editor
    This option actually sucks. If you don't disable it, you can move code around with your mouse which quite often happens, even if you don't want it.
  • [ ] Show notification after reformat code action
  • [ ] Show notification after optimize imports action
  • [x] Soft-wrap-files
    This is a very cool functionality. When you edit for instance markdown files, lines never wrap. With this option, you can change that. They wrap now.
  • Strip trailing spaces on Save: All
    This one strips all trailing spaces on every single save command (PhpStorm saves automatically if you don't use tabs)
  • [ ] Always keep trailing spaces on caret line
  • [x] Ensure line feed at file end on save
    With this option, your file is guaranteed to have an empty line at the end of the file.

Editor > General > Appearance

  • [ ] Show hard wrap and visual guides
  • [ ] Show code lens on scrollbar hover
    This removes the "preview" of the code when you hover at a specific position on the scrollbar

Editor > General > Breadcrumbs

  • [ ] Show Breadcrumbs
    We don't need breadcrumbs. So let's disable it. We love clean UIs.

Editor > General > Code Completion

  • [x] Show full method signatures
    We want to see everything when code completion for methods starts

Editor > General > Code Folding

Personally, I don't like any code folding, because I would like to see what I edit.

  • [ ] Show coding folding outline
  • [ ] File header
  • [ ] Imports
  • [ ] HTML 'style' attribute
  • [ ] XML entities
  • [ ] Data URIs
  • [ ] Imports

Editor > General > Editor Tabs

  • Appearance: None

If you are not used to having any tabs I can highly recommend it. You can always the shortcut Cmd + E to get the recent files and Shift + Shift to search for any other file. There is no need for tabs.

Editor > General > Smart Keys > PHP

  • [ ] Enable smart function parameters completion
  • [ ] Select variable name without '$' sign on double click
    If I double click on a variable, I don't want it to select the '$', that's why I disable it.

Editor > General > Font

This is very personal and up your own preference. This fits best for me.

  • Font: Menlo
  • Size: 15
  • Line spacing: 1.9

Editor > General > Color Scheme > General

If you're like me and you don't want all these method separators, you can disable them. What you can't disable yet are the separators for the imported use statements. But there is a workaround. Just unset the foreground color for the following entry.

  • [ ] Method separator color, Foreground

Editor > General > Code Style

  • Line Seperator: Unix and macOS

Editor > General > Inspections

You might be wondering why I don't say anything here. Listing the inspections is pretty elaborate. I've made a few adjustments here specific to Laravel. So you have a clean environment without those annoying underlings. My Inspections can also be found in the download package. If you have any questions, let me know.

Editor > General > Inlay Hints

  • [ ] Show hints for:
    I don't need this.

Languages & Frameworks > PHP > Debug

  • [ ] Force break at first line when no path mapping specified
  • [ ] Force break at first line when a script is outside the project

You should untick both when using Laravel Valet. Otherwise, xdebug starts debugging in Valet itself.

Tools > Web Browsers

  • [ ] Show browsers popup in the editor
    Do you remember this little preview with browser icons all the time? You can disable it.

Conclusion

The result is a very clean and intuitive IDE that remembers of Sublime with the only difference that it's a fully integrated IDE. You can download my complete PhpStorm settings package. Just import into PhpStorm via File > Import Settings

What's included?

This package contains also my customized GitHub Theme and customized Material Theme. My Material Theme is not that colorful as the original is. That makes it cleaner and you can focus more. As a bonus there is a Laravel specific inspections rule included. If you don't use it, most of the time everything is underscored with orange or red lines because of Laravels Facade architecture, it's hard for the IDE to follow everything along.

I am very interested in whether I have forgotten something? Or if you have any other practical tips to help me make PhpStorm even better. Let me know.

Bobby Bouwmann and I are writing a book called "Laravel Secrets".
You will learn everything about the undocumented secrets of the popular Laravel framework. You can sign up using the form below to get early updates.
      Visit laravelsecrets.com to get more information.