02-05-2021



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

Download the.tar.gz file from PhpStorm's download page and place it in the root directory of this repo. Create a new debian/changelog file using the provided update.sh script:./update.sh. First things first, so you have to actually install XDebug service on the machine that you are using ( or the Virtual Machine ). That can be accomplished by running the following command in case of a Debian system. Sudo apt-get install -y php-xdebug. Further configuration is done within the php extension.

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, PHP 7.4, and PHP 8.0. See Supported PHP Versions for details. 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 Ctrl+Alt+S, 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.

System requirements

RequirementMinimumRecommended
RAM2 GB of free RAM8 GB of total system RAM
CPUAny modern CPUMulti-core CPU. PhpStorm supports multithreading for different operations and processes making it faster the more CPU cores it can use.
Disk space2.5 GB and another 1 GB for cachesSSD drive with at least 5 GB of free space
Monitor resolution1024x7681920×1080
Operating system

Officially released 64-bit versions of the following:

  • Microsoft Windows 8 or later

  • macOS 10.13 or later

  • Any Linux distribution that supports Gnome, KDE, or Unity DE.

Pre-release versions are not supported.

Latest 64-bit version of Windows, macOS, or Linux (for example, Debian, Ubuntu, or RHEL)

You do not need to install Java to run PhpStorm because JetBrains Runtime is bundled with the IDE (based on 11).

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.

Phpstorm 2020 Crack

  • If you work with a local Web server, follow the Install an AMP package procedure to prepare your environment.

  • If you work in a Docker container, see Docker Support in PhpStorm.

  • If you use Vagrant, see Vagrant Support in PhpStorm.

  • If you use WSL, see WSL Support in PhpStorm.

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 Ctrl+Alt+S, 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.

      In the General section of Docker for Windows settings, enable Expose daemon on tcp://localhost:2375 without TLS.

    • 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>.dockermachinemachinesdefault.

    • 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 New Project.

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

  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:

    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:

    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:

  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 in the editor gutter to start all required Docker containers.

    Alternatively, open the built-in PhpStorm Terminal (Alt+F12) and execute the docker-compose up command.

Step 2: Explore the user interface

The main PhpStorm window is divided into several logical areas:

  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

Code completion 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 type-matching.

Basic completionCtrl+Space shows the code completion options for the current context and displays the members of the current type in bold:

To have more variants shown, press Ctrl+Space 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 type-matching completionCtrl+Shift+Space 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 Alt+Enter and choose Create file <filename>:

To view the full list of available intention actions, in the Settings/Preferences dialog Ctrl+Alt+S 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 Alt+Enter, to apply a fix.

You forgot a use statement?

Press Alt+Enter and click Import class:

In the list, click the class to import:

PhpStorm imports the selected class and adds a use statement:

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 Ctrl+Alt+S 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 Alt+Insert) will help you with generating constructors, getters/setters, PHPDoc comments as well as suggest overriding/implementing some methods Ctrl+O/ Ctrl+I. Try more live examples in workshop/02_Editing/06_Generate_code/6.1_Generate_Code.php.

Use live templates (choose Code | Insert Live Template or press Ctrl+J) to produce entire code constructs. To view the list of available ready-to-use live templates, in the Settings/Preferences dialog Ctrl+Alt+S 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 Ctrl+Alt+T, 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.

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.

Basic search

To find where a particular symbol is used in your project, PhpStorm suggests full-scale search via Find UsagesAlt+F7:

You can also search only in the current file Ctrl+F, or within a directory, any arbitrary scope, or the entire project Ctrl+Shift+F.

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 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:

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

    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 ClassCtrl+N, a FileCtrl+Shift+N, or a SymbolCtrl+Alt+Shift+N by its name is also at your disposal, see Searching Everywhere.

  • Go To Declaration (Ctrl+B, Ctrl+Click) 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 ImplementationCtrl+Alt+B 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.

Navigate through the timeline

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 File | Local History | Show History from the main menu. Here you can review the changes, revert them ( ), or create a patch ( ):

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 Ctrl+Alt+S, go to the PHP page.

  2. 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 gutter of the line where you want the breakpoint to appear:

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:

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 Ctrl+Shift+T. From the popup list, choose Create New Test:

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 . PhpStorm shows the results in the Test Runner tab of the Run tool window.

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 Ctrl+Alt+S go to Version Control.

The Git 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 Git popup view (Git | Show Git Log or Alt+9 ).

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: 01 April 2021
This post was cross posted on Dev.to

Docker has changed dramatically the way we develop applications. Thanks to it, it is really easy for everyone to run a complex application with a single command, without having to worry about the inner details like dependencies. These advantages are even greater when working on a team or enterprise context. I still remember being like the first 3 days when I joined my current company, configuring the project and all the related libraries and tools. Docker make it such much easier, faster and consistent.

But everything comes with a price. There is an extra complexity of maintaining all the Docker stuff. Also some things that were very easy in a normal development environment running locally, like debugging your application from your IDE, now requires some extra configuration. And in case of getting Xdebug to work, its not an easy task. I couldn't find a single guide that have all the steps from start to finish. Thats why I decided to write this article. It will guide you to step by step through the process of installing and configuring Xdebug and PHPStorm with a Dockerized Symfony 4 application.

Pre-requisites

  • This was tested on an Ubuntu 18.04 machine with PHPStorm 2018.1.4 and latest versions of Docker and Docker Compose. Some things might work a little different in other Operating Systems.
  • I assume you have a basic Knowledge of Docker, PHP and XDebug.
  • You can clone this repository as base to follow this gude as it contains a basic Symfony Flex application with all the Docker stuff explained in this article included.

Step 1 - Dockerize the application

Of course, to be able to use Xdebug you must install it on your Docker container.The way to do this, will depend of your base image. I always use alpine based images. I wont enter in detail about how to Dockerize a Symfony application. You can follow along with the Dockerfile included in the demo repository.

Here is the relevant excerpt of the Dockerfile that installs Xdebug:

I dont want have to have a separate Dockerfile for development and production, so I have defined a build argument that will tell whether we want to install Xdebug or not.

Then, on my Docker-compose file I have the following definition for my application:

See for the full docker-compose file.

Nothing really fancy about this. The important bit is the 'env_file' instruction which tells Compose to load environment variables from a '.env' file, which is the standard way for Symfony 4 applications.

We will use that file to add some required environment variables for Xdebug. If you prefer in you can also add directly to the docker-compose file using the 'environment' section.

Phpstorm

Environment Variables

We will define the following environment variables:

  • PHP_IDE_CONFIG - This variable defines the server configuration associated with the application. More on this later.
  • XDEBUG_CONFIG - This variable allows to define some Xdebug configurations. The 'remote host' is the private ip of your host machine (the one your PHPStorm is running). The 'remote_port' is the port that PHPStorm will be listening for incoming Xdebug connections. These two settings allow PHPStorm and Xdebug to communicate. It wont work without this.

We will add them to our '.env' file like this:

Debug

And thats it in terms of code.

Next lets dig into PHPStorm configurations.

PHPStorm configurations

The first thing you should do is to check your Debug settings. In PHPStorm, go to File -> Settings -> Languages and Frameworks -> PHP > Debug.

Make sure you have the some port that you have configured previously in 'XDEBUG_CONFIG' environment variable:

Next, we need to configure a server. This is how PHPStorm will map the file paths in your local system to the ones in your container.

Go to File -> Settings -> Languages and Frameworks -> PHP -> Servers

Give a name to your server. It should match the value you have defined in your 'PHP_IDE_CONFIG' environment variable. We will call it 'symfony-demo'.

The 'host' and 'port' is how will access your application. In my case is localhost:8888.

And then the 'Path mappings'.

In the 'Project files' section you have to map the root path of your application to the path inside the container. In my case its '/var/www/app'.

Click 'Apply' to save your configurations.

The last part is to configure the remote debugger of your project.

On the top right, click on 'edit configurations':

Click in the green 'plus' sign at the top left and select 'PHP Remote Debug' from the list.

Phpstorm Debug Chrome

Now configure it like this:

Make sure you associate it with the previously created 'server' definition. Use 'PHPSTORM' as idekey.

Phpstorm Linux Install

Your IDE should be now correctly configured. Lets test.

Testing

  • Open 'src/Controllers/HelloController.php' and place a breakpoint in the 'hello' method.

  • Start your Docker container with docker-compose up

  • Then click on 'Start Listening for PHP Debug connections' icon on top right corner of PHPStorm.

  • Open http://localhost:8888?XDEBUG_SESSION_START=PHPSTORM

If everything went well you should see the execution stop at your breakpoint.

Phpstorm Debug Setup

And thats it. You should now have a fully configured development environment with Docker and Xdebug integrated with PHPStorm IDE.

Install Phpstorm

If you have any issues or questions feel free to comment bellow or in the GitHub Repository.

Thank you and good debugging ;)