PhpStorm 2019.2 Help

Quick Start Guide

PhpStorm is an Integrated Development Environment for PHP developers built on top of the IntelliJ IDEA platform.

Supported languages

With PhpStorm, you can develop applications in PHP 5.3, PHP 5.4, PHP 5.5, PHP 5.6, PHP 7, PHP 7.1, PHP 7.2, PHP 7.3 and PHP 7.4. In addition, it fully supports HTML5, CSS, JavaScript, and XML: support for these languages is handled via plugins that are bundled in the IDE and are enabled by default. Support for other languages can be added via plugins: in the Settings/Preferences dialog N/A, go to Plugins to find out more or set them up during the first IDE launch.

Supported platforms

PhpStorm is a cross-platform IDE that works on Windows, macOS, and Linux.

PhpStorm system requirements

To run PhpStorm, your need to have 1 GB RAM minimum (2 GB RAM recommended), 1024x768 minimum screen resolution, and fit the following system requirements:

32-bit or 64-bit versions of Microsoft Windows 10, 8, 7 (SP1), or Vista (SP2)
macOS 10.8.3 or later (only 64-bit systems are supported)
OS Linux (note that a 32-bit JDK is not bundled, so a 64-bit system is recommended). KDE, Gnome, or Unity desktop environment is recommended.

Note that JRE 1.8 is bundled with distributions for all platforms. This means that you don't need any Java to be installed on your machine in order to run PhpStorm.

Find more details about requirements for PhpStorm in System requirements.

Configuring PHP environment

PhpStorm is a smart IDE, but first you need to inform it which PHP environment we use, where PHP components are stored, and how they are configured.

In this Quick Start Guide, we will set up a pre-configured project in a Docker environment.

Before you start

  1. Install Docker for your operating system.

  2. In PhpStorm, in the Settings/Preferences dialog N/A, go to Build, Execution, Deployment | Docker and select how to connect to the Docker daemon.

    Depending on your operating system, do the following:

    • Select TCP socket.

    • Set Engine API URL to tcp://localhost:2375.

    • Leave the Certificates folder field empty.

    If you are using Docker Toolbox, use the following configuration options instead:

    • Set Engine API URL to https://192.168.99.100:2376

    • Set Certificates folder to <your_home_directory>\.docker\machine\machines\default.

    • Select Docker for Mac.

    • Select Unix socket.

Step 1: Open a project in PhpStorm

Everything you do in PhpStorm is done within the context of a project. It serves as a basis for coding assistance, bulk refactoring, coding style consistency, and so on.

In this Quick Start Guide, we provide a workshop project that already contains a docker-compose.yml file with the pre-configured environment. The project is available on GitHub at https://github.com/JetBrains/phpstorm-workshop.

Start the Workshop project in PhpStorm

  1. On the PhpStorm Welcome screen, click Create New Project.

    ps_workshop_materials_welcome_screen.png
  2. Select PhpStorm Workshop Project from the list on the left, provide the project location in the Location field, and click Create.

    ps_workshop_materials_create_workshop_project_from_new_project_dialog.png
  3. Open docker-compose.yml in the editor and update the XDEBUG_CONFIG variable with the value depending on your operating system. This is necessary for Web Debugging.

    Use the host.docker.internal value, which refers to the remote host, that is, the machine Docker is running on. It will automatically resolve to the internal address of the host, letting you connect to it from the container.

    The corresponding part of the docker-compose.yml file should look as follows:

    XDEBUG_CONFIG: remote_host=host.docker.internal

    Use the host.docker.internal value, which refers to the remote host, that is, the machine Docker is running on. It will automatically resolve to the internal address of the host, letting you connect to it from the container.

    The corresponding part of the docker-compose.yml file should look as follows:

    XDEBUG_CONFIG: remote_host=host.docker.internal

    Use your local machine’s hostname. To obtain it, execute the hostname command in Terminal.

    The corresponding part of the docker-compose.yml file should look as follows:

    XDEBUG_CONFIG: remote_host=<local_hostname>
  4. In the same docker-compose.yml file, uncomment the appropriate line for the sftp service depending on your operating system. This is necessary for deployment to work correctly.

  5. Click Start services button in the editor gutter to start all required Docker containers.

    Start containers button

    Alternatively, open the built-in PhpStorm Terminal (N/A) and execute the docker-compose up command.

You have other options to start working on a project in PhpStorm as you can see from the Welcome Screen:

ps_quick_start_welcome_screen_mac.png

Step 2: Explore the user interface

The main PhpStorm window is divided into several logical areas:

PhpStorm user interface overview
  1. Menus and toolbars that help us execute various commands.

  2. Navigation bar for navigating through the project.

  3. Status bar with various information about the entire PhpStorm, the current project or a file in the editor, warnings, and error messages.

  4. The Editor where you actually write your code. It has tabs for easy navigation between opened files.

  5. Numerous Tool Windows that perform different functions: help you explore and navigate through the project and file structures, view search and inspection results, run, debug, and test applications, work in interactive consoles, and more.

Step 3: Code with smart assistance

PhpStorm takes care of the routine so that you can focus on the important. Use numerous PhpStorm coding capabilities to create error-free applications without wasting precious time. In the base project, you can interactively try these features on a number of PHP files with code examples and guidelines.

Code completion

Auto-Completing Code and Paths is a great time-saver regardless of the type of the file you’re working with. There are two types of code completion in PhpStorm: basic and smart.

Basic completion N/A shows the code completion options for the current context and displays the members of the current type in bold:

ps_quick_start_basic_completion_mac.png
To have more variants shown, press N/A once again.

To try basic code completion, open workshop/02_Editing/01_Completion/1.1_Basic_Completion.php in your project and follow the instructions in the comments.

Smart completion N/A analyzes the context you’re currently working in and offers more accurate suggestions based on that analysis filtering the list of functions and variables to match the expression type.

To try smart code completion, open workshop/02_Editing/01_Completion/1.3_Type_hinting.php in your project and follow the instructions in the comments.

Intention actions

PhpStorm keeps an eye on what you are currently doing and makes smart suggestions, called intention actions, to save more of your time. Intention actions let you apply automatic changes to the code that is correct (in contrast to code inspections that provide quick-fixes for code that may be incorrect).

Your code references a file that does not exist? Not a problem with PhpStorm. Press N/A and choose Create file <filename>:

ps_quick_start_intention_action_1_1_mac.png

To view the full list of available intention actions, in the Settings/Preferences dialog N/A go to Editor | Intentions.

To try various intention actions, open workshop/02_Editing/05_Intentions/5.1_Intentions.php in your project and follow the instructions in the comments.

Step 4: Keep your code neat

PhpStorm monitors your code and tries to keep it accurate and clean. It detects potential errors and problems and suggests quick-fixes for them.

Every time PhpStorm finds unused code, an endless loop, hidden upper scope, an assignment operator = in a conditional expression, and many other things that probably require your attention, you’ll see a light bulb. Click it, or press N/A, to apply a fix.

You forgot a use statement?

ps_quick_start_inspection_mac.png

Press N/A and click Import class:

ps_quick_start_import_class_popup_mac.png

In the list, click the class to import:

ps_quick_start_quick_fix_choose_class_to_import_mac.png

PhpStorm imports the selected class and adds a use statement:

ps_quick_start_quick_fix_class_imported_use_added.png

Try more live examples from workshop/03_Inspections/02_Quick_Fixes.php.

To view the full list of available inspections, in the Settings/Preferences dialog N/A go to Editor | Inspections. You can disable some of them, or enable others, plus you can adjust the severity of each inspection. You decide whether it should be considered an error or just a warning.

Step 5: Generate some code

Writing code can be a lot easier and faster with the code generation options available in PhpStorm. The Code | Generate menu (or just N/A) will help you with generating constructors, getters/setters, PHPDoc comments as well as suggest overriding/implementing some methods N/A / N/A. Try more live examples in workshop/02_Editing/06_Generate_code/6.1_Generate_Code.php.

ps_quick_start_generate_code_mac.png

Use live templates (choose Code | Insert Live Template or press N/A) to produce entire code constructs. To view the list of available ready-to-use live templates, in the Settings/Preferences dialog N/A go to Editor | Live templates.

If you see that you need something important for your development, extend this set of templates with your own ones. Try live examples from workshop/04_Live_Templates/01_Code_Expansion/1.1_Code_Expansion.php and workshop/04_Live_Templates/02_Creating_Live_Templates.

Also, consider surrounding your code with complete constructs. Choose Code | Surround With or press N/A, then choose the required statement from the popup menu. Try more live examples in workshop/04_Live_Templates/03_Surround_Templates/3.1_Simple_template.php.

ps_quick_start_surround_with_dialog_mac.png

Step 6: Find your way through

When your project is big, or when you have to work with the code written by someone else, it’s vital to be able to quickly find what you are looking for and dig into the code. This is why PhpStorm comes with a set of navigation features that will help you find your way through code.

To find where a particular symbol is used in your project, PhpStorm suggests full-scale search via Find Usages N/A:

ps_quick_start_find_usages_mac.png

You can also search only in the current file N/A, or within a directory, any arbitrary scope, or the entire project N/A.

To try basic search, open workshop/01_Navigation/05_Find_usages/5.2_Find_Usages.php or workshop/01_Navigation/05_Find_usages/5.1_Highlight_Usages_in_File.php in your project and follow the instructions in the comments.

Project navigation

You can tell a lot just looking at your File Structure, with its imports or call hierarchies, and possibly use it to navigate through your code with the help of powerful navigation actions.

  • Search Everywhere lets you search for classes, file, symbols and menu actions all at once as well as navigate to them. To launch Search Everywhere, click the magnifying glass icon search_everywhere in the upper-right corner of the PhpStorm window or press Shift twice. If you do not specify any search pattern, PhpStorm shows a list of recent files where you can navigate to the relevant item by clicking it:

    ps_quick_start_search_everywhere_1.png

    To search for something specific, type a search pattern. Note that besides symbols, Search Everywhere can find actions:

    ps_quick_start_search_everywhere_specify_pattern_mac.png

    In the Search Everywhere mode, PhpStorm even accepts CamelHumps and recognizes middle matches.

    To try various ways to use Search Everywhere, open workshop/01_Navigation/01_Navigate_to_something_you_know/1.6_Search_everywhere.md in your project and follow the instructions.

    Of course navigation to a Class N/A, a File N/A, or a Symbol N/A by its name is also at your disposal, see Search for a target by name.

  • Go To Declaration (N/A, Ctrl+Click for Windows and Linux or ⌘+Click for macOS) brings you to the location where a particular symbol is first declared. This type of navigation works from any place in the source code, even from another class or comment. To try navigating through Go to Declaration, open workshop/01_Navigation/02_Navigate_to_Declaration/2.1_Go_to_declaration.php in your project and follow the instructions in the comments.

  • Go to Implementation N/A brings you to the implementation of a particular class. If there are several implementations, PhpStorm shows them in a list where you can select the relevant one to navigate to. To try navigating through Go to Implementation, open workshop/01_Navigation/04_Navigate_class_hierarchies/4.1_Go_to_Implementation.php in your project and follow the instructions in the comments.

    ps_quick_start_go_to_implementation_mac.png

PhpStorm automatically keeps track of the changes you make to the source code, the results of refactoring, and so on in the Local History. Contrary to traditional Version Control Systems, Local History is always enabled. To view it for a file or a folder, choose VCS | Local History | Show History from the main menu. Here you can review the changes, revert them (Rollback changes button), or create a patch (iconCreatePatch.png):

ps_quick_start_local_history_mac.png

To try using Local History yourself, open workshop/09_Version_Control/07_Local_History.php in your project and follow the instructions in the comments.

Step 7: Debug your application

Does your application do exactly what it is intended to? If it does not, you will have to do some debugging to find out what causes the problem. Luckily, our sample project already has Xdebug installed and configured.

Configure the PHP interpreter

In our project, the Docker environment already contains a PHP interpreter, and you only need to tell PhpStorm where it is located.

  1. In the Settings/Preferences dialog N/A, go to Languages and Frameworks | PHP.

  2. On the PHP page that opens, select PHP 7.1 with Xdebug from the CLI Interpreter list.

Set breakpoints

Debugging starts with placing breakpoints at which program execution will be suspended, so you can explore program data. Just click the left gutter of the line where you want the breakpoint to appear:

ps_quick_start_set_breakpoints_mac.png

To play with breakpoints yourself, open workshop/06_Debugging/03_Breakpoints.php in your project and follow the instructions in the comments.

Start debugging

In the Project tool window, select workshop/06_Debugging/03_Breakpoints.php and choose Debug | 03_Breakpoints.php from the context menu:

ps_quick_start_guide_start_debugging_session_mac.png

PhpStorm starts a debugging session and opens the Debug Tool Window where you can step through the suspended program, view variable values, evaluate expressions, and much more. Try more live examples from workshop/06_Debugging/05_Debug_Tool_Window.php.

See Zero-Configuration Debugging for alternative debugging scenarios.

Step 8: Test your code

PhpStorm integrates with the most popular PHP test frameworks: such as PHPUnit, Behat, PHPSpec, and Codeception.

Write your tests

Navigate to the class to test and press N/A. From the popup list, choose Create New Test:

ps_quick_start_go_to_test_popup.png

In the dialog that opens, all the fields are filled in so just click OK. PhpStorm generates a test class <class_to_test>Test and opens it in the editor. Write your tests as required.

To try writing tests yourself with PhpStorm coding assistance, open workshop/08_Testing/01_Writing_Tests.php and follow the instructions in the comments.

Launch the test

Open the file with your tests in the editor or click it in the Project tool window and choose Run <class_to_test>Test. This launches the PHPUnit run configuration that PhpStorm has generated for you automatically. You can also create a run configuration (Run | Edit Configurations) of the Behat, PHPSpec, or Codeception type, select it from the list on the toolbar, and then click Run button. PhpStorm shows the results in the Test Runner Tab of the Run Tool Window.

Test runner tab.png

Step 9: Keep your source code under Version Control

If you are keeping your source code under version control, you will be glad to know that PhpStorm integrates with many popular version control systems: Git (or GitHub), Mercurial, Perforce, and Subversion. To specify credentials and any settings specific to a particular VCS, in the Settings/Preferences dialog N/A go to Version Control.

The VCS menu will give you a clue about what commands are available. For example, you can see the changes you’ve made, commit them, create changelists and much more from the Changes popup view (VCS | Show Changes View or N/A).

Step 10: That’s it! Go ahead and develop with pleasure!

We hope this brief overview of essential PhpStorm features will give you a quick start. There are many important features that make a developer’s life easier and more fun, and their source code neater and cleaner. Take these first few steps now, and then dig deeper when you feel the time is right. Enjoy PhpStorm!

With any questions visit our PhpStorm Discussion Forum, twitter, and blog, where you can find news, updates, and useful tips and tricks. Also, don't hesitate to report any problems to our support team) or the PhpStorm issue tracker.

Last modified: 16 August 2019