PhpStorm 2023.2 Help

Migrate from Eclipse to PhpStorm

Switching from Eclipse to PhpStorm, especially if you've been using Eclipse for a long time, requires understanding some fundamental differences between the two IDEs, including their user interfaces, compilation methods, shortcuts, project configuration and other aspects.

Import an Eclipse project to PhpStorm

You can import either an Eclipse workspace or a single Eclipse project. To do this, click Open on the Welcome Screen or select File | Open in the main menu.

Opening a project from the Welcome screen

If you'd like to import your existing run configurations from Eclipse, consider using this third-party plugin.

User Interface

No workspace

The first thing you'll notice when launching PhpStorm is that it has no workspace concept. This means that you can work with only one project at a time. While in Eclipse you normally have a set of projects that may depend on each other, in PhpStorm you have a single project that consists of a set of modules.

If you have several unrelated projects, you can open them in separate windows.

If you still want to have several unrelated projects opened in one window, as a workaround you can attach them to the current project.

No perspectives

The second big surprise when you switch to PhpStorm is that it has no perspectives.

It means that you don't need to switch between different workspace layouts manually to perform different tasks. The IDE follows your context and brings up the relevant tools automatically.

PhpStorm project overview

Tool windows

Just like in Eclipse, in PhpStorm you also have tool windows. To open a tool window, click its name in the tool window bar:

Tool windows bars

If the tool window bar is hidden, you can open any tool window by hovering over the corresponding icon in the bottom-left corner:

Tool windows bars menu

If you want to make the tool window bar visible for a moment, you can press Alt twice and hold it.

If you don't want to use the mouse, you can always switch to any toolbar by pressing the shortcut assigned to it. The most important shortcuts to remember are:

  • Project: Alt+1

  • Commit: Alt+0

  • Terminal: Alt+F12

Another thing about tool windows is that you can drag, pin, unpin, attach and detach them:

Moving tool windows

For more information, refer to Arrange tool windows and Tool window view modes.

To help store/restore the tool windows layout, there are several useful commands:

  • Window | Layouts | Save Current Layout as New: save the arrangement as a new layout.

  • Window | Layouts | Restore Current Layout: reset changes in your current layout. (also available via Shift+F12)

For more information, refer to Layouts.

Multiple windows

Windows management in PhpStorm is slightly different from Eclipse. You can't open several windows with one project, but you can detach any number of editor tabs into separate windows.

Always select opened files

By default, PhpStorm doesn't change the selection in the Project tool window when you switch between editor tabs. However, you can enable it in the Project tool window settings:

Enabling the 'Always select opened file' option

General workflows

No 'save' button

PhpStorm has no Save button. Since in PhpStorm you can undo refactorings and revert changes from Local History, it makes no sense to ask you to save your changes every time.

Still, it's worth knowing that physical saving to disk is triggered by certain events, including compilation, closing a file, switching focus out of the IDE, and so on. You can change this behavior via Settings/Preferences | Appearance & Behavior | System Settings:

Configuring the system settings

Save actions

If you are an experienced Eclipse user, you are familiar with save actions: the actions triggered automatically on save, such as reformatting code, organizing imports, and so on.

PhpStorm also features save actions that you can find and enable in Settings/Preferences | Tools | Actions on Save.

On top of that, PhpStorm offers you to run the corresponding actions automatically on commit:

Committing new changes to VCS

Or manually:

  • Code | Reformat Code Control+Alt+L

  • Code | Optimize Imports Control+Alt+O

  • Code | Code Cleanup

Shortcuts

PhpStorm shortcuts are completely different from those in Eclipse.

The table below shows how the top Eclipse actions (and their shortcuts) are mapped to PhpStorm (you may want to print it out to always have it handy).

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Code completion

Control+Space

Basic completion

Control+Space

-

-

Type-matching completion

Control+Shift+Space

-

-

Statement completion

Control+Shift+Enter

Quick access

Ctrl+3

Search everywhere

Double Shift

Maximize active view or editor

Ctrl+M

Hide all tool windows

Control+Shift+F12

Open type

Ctrl+Shift+T

Navigate to class

Control+N

Open resource

Ctrl+Shift+R

Navigate to file

Control+Shift+N

-

-

Navigate to symbol

Control+Alt+Shift+N

Next view

Ctrl+F7

-

-

-

-

Recent files

Control+E

Quick outline

Ctrl+O

File structure

Control+F12

Move lines

Alt+Up/Down

Move lines

Alt+Shift+ArrowUp/Alt+Shift+ArrowDown

Delete lines

Ctrl+D

Delete lines

Control+Y

Quick fix

Ctrl+1

Show intention action

Alt+Enter

Quick switch editor

Ctrl+E

Switcher

Control+Shift+Tab

-

-

Recent files

Control+E

Quick hierarchy

Ctrl+T

Navigate to type hierarchy

Control+H

-

-

Navigate to method hierarchy

Control+Shift+H

-

-

Show UML popup

Command Alt U

Last edit location

Ctrl+Q

Last edit location

Control+Shift+Backspace

Next editor

Ctrl+F6

Select next tab

Alt+ArrowRight

Run

Ctrl+Shift+F11

Run

Shift+F10

Debug

Ctrl+F11

Debug

Shift+F9

Correct indentation

Ctrl+I

Auto-indent lines

Control+Alt+I

Format

Ctrl+Shift+F

Reformat code

Control+Alt+L

Surround with

Ctrl+Alt+Z

Surround with

Control+Alt+T

-

-

Surround with live template

Control+Alt+J

Open declaration

F3

Navigate to declaration

Control+B

-

-

Quick definition

Control+Shift+I

Open type hierarchy

F4

Navigate to type hierarchy

Control+H

-

-

Show UML popup

Command Alt U

References in workspace

Ctrl+Shift+G

Find usages

Alt+F7

-

-

Show usages

Control+Alt+F7

-

-

Find usages settings

Control+Alt+Shift+F7

Open search dialog

Ctrl+H

Find in Files

Control+Shift+F

Occurrences in file

Alt+Ctrl+U

Highlight usages in file

Control+Shift+F7

Copy lines

Ctrl+Alt+Down

Duplicate lines

Control+D

Extract local variable

Ctrl+Alt+L

Extract variable

Control+Alt+V

Assign to field

Ctrl+2/Ctrl+F

Extract field

Control+Alt+F

Show refactor quick menu

Ctrl+Alt+T

Refactor this

Control+Alt+Shift+T

Rename

Ctrl+Alt+R

Rename

Shift+F6

Go to line

Ctrl+L

Navigate to line

Control+G

Structured selection

Alt+Shift+Up/Alt+Shift+Down

Select word at caret

Control+W/Control+Shift+W

Find next

Ctrl+J

Find next

F3

Show in

Ctrl+Alt+W

Select in

Alt+F1

Back

Ctrl+[

Back

Control+Alt+ArrowLeft

Forward

Ctrl+]

Forward

Control+Alt+ArrowRight

Eclipse keymap

For Eclipse users who prefer not to learn new shortcuts, PhpStorm provides the Eclipse keymap which closely mimics its shortcuts:

Eclipse keymap

Find action

When you don't know the shortcut for some action, try using the Find action feature available via Control+Shift+A. Start typing to find an action by its name, see its shortcut, or call it:

The Find Action dialog

Coding assistance

Both Eclipse and PhpStorm provide coding assistance features, such as code completion, code generation, quick-fixes, live templates, and so on.

Quick-fixes

To apply a quick-fix in PhpStorm, press Alt+Enter:

Applying quick-fixes

All quick-fixes are based on inspections configured in Settings/Preferences | Editor | Inspections:

the Inspections dialog

If you want to apply a quick-fix to several places at once (that is to a whole folder, module or even a project), you can do it by running the corresponding inspection via Code | Analyze Code | Run Inspection By Name... or by running the whole batch of inspections via Code | Running Code Cleanup with profile ''{0}''…:

Analysing code in PhpStorm

Apart from outright problems, PhpStorm also recognizes code constructs that can be improved or optimized via the so-called intentions (also available with Alt+Enter):

Applying intention actions

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Quick fix

Ctrl+1

Show intention action

Alt+Enter

Generating code

The key action for generating code is Code | Generate, available via Alt+Insert:

Generating code

Code completion

PhpStorm provides different types of code completion, which include:

  • Basic completion

  • Second basic completion

  • Type-matching completion

  • Second type-matching completion

  • Statement completion

By default, PhpStorm doesn't show the Documentation popup for the selected item, but you can enable it in Settings/Preferences | Editor | Code Completion | Show the documentation popup in:

Code completion

If you don't want to enable this option, you can manually invoke this popup by pressing Control+Q when you need it:

Showing the quick documentation popup

When the caret is within the brackets of a method or a constructor, you can get the info about the parameters by calling Parameter Info with Control+P:

Showing parameter info

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Code completion

Ctrl+Space

Basic completion

Control+Space

-

-

Type-matching completion

Control+Shift+Space

-

-

Statement completion

Control+Shift+Enter

Templates

In PhpStorm, Live templates let you insert frequently used constructs into source code.

Abbreviation

Expands to ...

rqr

require "";

pubsf

public static function () { }

fore

foreach ( as $item) { }

eco

echo "";

The list of available templates can be found in Settings | Editor | Live Templates. There you can also add your own templates or modify any existing ones.

Postfix templates

In addition to 'regular' templates, PhpStorm offers the so-called postfix templates. They are useful when you want to apply a template to an expression you've already typed. For instance, type a variable name, add null and press Tab. PhpStorm will turn your expression into a if (...==null){...} statement.

To see a complete list of available postfix templates, go to Settings | Editor | General | Postfix Completion.

Surround with live template

The surround with templates is another addition that works similarly to live templates but can be applied to the selected code with Control+Alt+J.

To define your own surround with template, go to Settings | Editor | Live Templates and use $SELECTION$ within the template text:

try { $SELECTION$ } catch ($TYPE$ $$$VARIABLENAME$) { Logger::log($$$VARIABLENAME$); $END$ }

Refactorings

The following table maps the shortcuts for the most common refactorings in Eclipse with those in PhpStorm:

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Extract local variable

Ctrl+Alt+L

Extract variable

Control+Alt+V

Assign to field

Ctrl+2

Extract field

Control+Alt+F

Show refactor quick menu

Alt+Shift+T

Refactor this

Control+Alt+Shift+T

Rename

Ctrl+Alt+R

Rename

Shift+F6

Undo

Sometimes, refactorings may affect a lot of files in a project. PhpStorm not only takes care of applying changes safely, but also lets you revert them. To undo the last refactoring, switch the focus to the Project tool window and press Control+Z.

Search

Below is a map of the most common search actions and shortcuts:

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Open search dialog

Ctrl+H

Find in Files

Control+Shift+F

References in workspace

Ctrl+Shift+G

Find usages

Alt+F7

-

-

Show usages

Control+Alt+F7

-

-

Find usages settings

Control+Alt+Shift+F7

Occurrences in file

Alt+Ctrl+U

Highlight usages in file

Control+F7

The table below roughly maps the navigation actions available in Eclipse with those in PhpStorm:

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Quick access

Ctrl+3

Search everywhere

Double Shift

Open type

Ctrl+Shift+T

Navigate to class

Control+N

Open resource

Ctrl+Shift+R

Navigate to file

Control+Shift+N

-

-

Navigate to symbol

Control+Alt+Shift+N

Quick switch editor

Ctrl+E

Switcher

Control+Tab

-

-

Recent files

Control+E

Open declaration

F3

Navigate to declaration

Control+B

Open type hierarchy

F4

Navigate to type hierarchy

Control+H

-

-

Show UML popup

Command Alt U

Quick outline

Ctrl+O

File structure

Control+F12

Back

Ctrl+[

Back

Control+Alt+ArrowLeft

Forward

Ctrl+]

Forward

Control+Alt+ArrowRight

Code formatting

PhpStorm code formatting rules (available via Settings | Editor | Code Style) are similar to those in Eclipse, with some minor differences. You may want to take note of the fact that the Use tab character option is disabled by default, the Indent size may be different, etc.

Code formatting

If you would like to import your Eclipse formatter settings, go to Settings | Editor | Code Style | PHP, click the Show Scheme Actions button, click Import Scheme and select the exported Eclipse formatter settings (an XML file).

Note that there may be some discrepancies between the code style settings in PhpStorm and Eclipse. For example, you cannot tell PhpStorm to put space after (but not before). If you want PhpStorm to use the Eclipse formatter, consider installing the Eclipse code formatter plugin.

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Format

Ctrl+Shift+F

Reformat code

Control+Alt+L

Run and reload changes

Similarly to Eclipse, PhpStorm also has Run/debug configurations dialog that you can access either from the main toolbar, or the main menu. Compare the related shortcuts:

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Run

Ctrl+Shift+F11

Run

Shift+F10

Debug

Ctrl+F11

Debug

Shift+F9

-

-

Make

Control+F9

-

-

Update application

Command F10

Debug

The debuggers in Eclipse and PhpStorm are similar but use different shortcuts:

Eclipse

PhpStorm

Action

Shortcut

Action

Shortcut

Step into

F5

Step into

F7

-

-

Smart step into

Shift+F7

Step over

F6

Step over

F8

Step out

F7

Step out

Shift+F8

Resume

F8

Resume

F9

Toggle breakpoint

Ctrl+Shift+B

Toggle breakpoint

Control+F8

Evaluate expression

Ctrl+Shift+I

Evaluate expression

Alt+F8

Version control systems

PhpStorm supports Git, Mercurial, Subversion, Perforce and other version control systems (VCS).

Configure VCS roots

When you open a project located under a VCS root, PhpStorm automatically detects this root and suggests adding it to the project settings.

  • To change version control-related project settings (or manually add a VCS root), go to Settings | Version Control.

    Working with VCS

PhpStorm works perfectly with multi-repository projects. Just map your project directories to VCS, and the IDE will take care of the rest. For Git and Mercurial, the IDE will even offer you synchronized branch control, so that you can perform branch operations on multiple repositories simultaneously. For more information, refer to Manage Git branches.

Edit VCS settings

Every VCS may require specific settings, for example, Path to Git executable, GitHub/Perforce credentials, and so on:

Editing VCS settings

Once you've configured the VCS settings, you'll see the Version Control tool window Alt+9.

Checking projects out

To check out a project from a VCS, click Get from Version Control on the Welcome Screen, or in the main VCS menu.

Working with local changes

The Changes view shows your local changes: both staged and unstaged. To simplify managing changes, all changes are organized into changelists. Any changes made to source files are automatically included in the active changelist. You can create new changelists, delete the existing ones (except for the Changes one), and move files between changelists.

Committing new changes to VCS

Right-click the unversioned file or folder you want to ignore in the Local Changes tab of the Version Control tool window Alt+9 or in Project tool window and select Git | Add to .gitignore or Git | Add to .git/info/exclude.

If you want ignored files to be also displayed in the Local Changes view, click the View Options button on the toolbar and select Ignored Files.

Showing ignored files

Working with history

The Log tab of the Git tool window lets you see and search through the history of commits. You can sort and filter commits by the repository, branch, user, date, folder, or even a phrase in the description. You can find a particular commit, or just browse through the history and the branch tree:

The Log tab of the Git tool window

Working with branches

PhpStorm lets you create, switch, merge, compare and delete branches. For these operations, either use Branches from the main or context VCS menu, or the VCS operations popup (you can invoke it by pressing Alt+`, or the widget on the right of the status bar:

Working with branches

All VCS operations are available from the VCS main menu:

Action

Shortcut

Version Control tool window

Alt+9

VCS operations popup

Alt+`

Commit changes

Command K

Update project

Command T

Push commits

Command Shift K

Configure PHP development environment

A lot of PhpStorm features are available without any configuration right after you launch it. Still, to take full advantage of running, deploying, and debugging your PHP application, refer to the following sections:

Last modified: 25 September 2023