PhpStorm 2018.3

Release Candidate

Please welcome Release Candidate of PhpStorm 2018.3, the third major PhpStorm update due for release in 2018.
Give it a try and share your feedback in the blog!

PHP

Doctrine Query Language

Doctrine Query Language

One of Doctrine ORM's key features is the ability to write database queries in DQL, which is a query language for your object model. It means that in your queries, you’ll be using PHP classes’ and fields’ names to fetch or update data. PhpStorm comes with full advanced DQL support. You’ll get all the inspections and refactorings: find usages, rename entity or field, associations support, and even more.

PHP 7.3 Support

PHP 7.3 Support

The latest PHP interpreter update brings with it a lot of new features for the community. PhpStorm supports all of them, including flexible Heredoc and Nowdoc syntax, trailing comma in function and method calls, literals as the first operand of instanceof, and the list() reference assignment.

Ctrl+Dot Completion

Press Ctrl+Dot in the suggestions list to get the completed item followed by an arrow. You can then type in the method name right away.

PHPDoc Improvements

PhpStorm adds Support for Intersection Types “&. If you annotate a variable as Foo&Bar, then it is of type Foo and of type Bar at the same time. PhpStorm will also suggest members of both classes.

Also, PSR-5 <generic> collection type hints are now supported on the parser level.

Improvements for formatted string functions

PhpStorm makes it easier to use printf() / sprintf() and prevent common mistakes.

Refactorings and Intentions
Refactorings and Intentions

Refactorings and Intentions

PhpStorm 2018.3 delivers many refactoring improvements and related intention actions:

  • With the Replace with Alias intention, you can now replace use Foo\Bar with use Foo\Bar as Baz, which will also replace all Bar occurrences with Baz. The opposite action Inline Alias is available as well.
  • The new intention Сhange Class Member Visibility allows you to safely switch public/protected/private modifiers of properties and methods.
  • Private name refactoring is improved and by default PhpStorm will search only context usages when renaming private properties.

Deployment

Remote Deployment To Multiple Hosts

Remote Deployment To Multiple Hosts

PhpStorm lets you copy files and folders to a remote server using FTP/SFTP/FTPS, as well as to a local or mounted folder as a destination. Now you can deploy to multiple servers at once by using server groups. Add as many groups as you wish with an arbitrary number of destinations in each group, and deploy to all servers in a group simultaneously in one click.

Quality Tools

PHP CS Fixer Support

PHP CS Fixer Support

Now with PHP CS Fixer support, it becomes possible to automatically fix code style issues. Not only will PhpStorm detect the path to PHP CS Fixer for you, but it will also autodetect your custom ruleset and turn on the corresponding inspection. Go to some file with code style issues, and run quick-fix that will update the whole file at once.

Autodetect non-PSR coding standards for PHP_CodeSniffer

Non-PSR coding standards for PHP_CodeSniffer will be autodetected from your composer.json for the following frameworks: Symfony, Doctrine, Drupal, WordPress, Joomla!, Magento, MediaWiki, Yii 2, and CakePHP.

Simplified settings of quality tools

The quality tools settings have been simplified: you can now configure all supported tools (PHPCS, PHPMD, and PHP CS Fixer) in one place.

Version Control

GitHub Pull Requests

GitHub Pull Requests

You can now work with pull requests inside PhpStorm. Select VCS | Git | View Pull Requests in the menu to open a new tool window with a list of all the pull requests in your project. You can see the description, assignee, reviewers, labels, and changed files from the pull request. See diffs and create a new local branch from pull requests right there.

Support for Git submodules

All the familiar features in the Git integration, such as update project, commit changes, view diff, and conflict resolution, now work with Git submodules.

Ignore whitespaces

You can now ignore or trim whitespaces while merging – the configuration is available in the new drop-down at the top of the Merge Revisions for… dialog. Whitespaces are also ignored by default when you use Annotate for a file.

And even more

Advanced navigation in the VCS log with arrow keys, a parallel fetch of multiple Git repos, better support for pre-commit hooks, and a lot of other improvements are in store.

Web Technologies Support

Autoimports in JavaScript

Autoimports in JavaScript

In JavaScript files, PhpStorm can now automatically add imports not only for symbols defined in your project, but also for symbols from the project’s dependencies. This works as long as the library has sources written as ES modules or a TypeScript type definition file.

Improved Angular support

Improved Angular support

PhpStorm is now much better at helping you edit Angular templates. Сode completion and Go to definition for variables, pipes and async pipes, as well as for the template reference variables, are now much more accurate. In total, over 50 known issues have been fixed in Angular and AngularJS support.

Better 'null' and 'undefined' check

PhpStorm can now better detect situations that lead to a TypeError because a method is invoked on a value that is undefined or null, or it is passed to a function, or its property is used.

Vuetify support

PhpStorm now provides code completion for components from Vuetify version 1.1 or later.

React improvements

In React apps, code completion now suggests all component lifecycle methods. The Unresolved variable inspection will now warn you about any potentially undefined components.


As usual, all the features and improvements of WebStorm are available in PhpStorm, either out of the box or with free plugins available in the repository.

IDE

Search Everywhere

New search popup

The new Search Everywhere dialog is a better way to navigate the project and the IDE – search classes, files, symbols, and even actions and settings. Press Shift-Shift to search everywhere, and switch contexts by pressing Tab.

VCS

High-contrast theme

To make PhpStorm more accessible, we’ve added a new high-contrast UI theme. The IDE now allows screen readers to read line numbers, VCS annotations, breakpoints, and other gutter icons. Learn more about screen reader support in the documentation.

Database Tools

Improvements in Database tools

Database tools in PhpStorm have been improved thanks to our colleagues from the DataGrip team:

  • Cassandra database support
  • Many improvements in code completion
  • Support for extensions in PostgreSQL
  • Introduce table alias intention
  • Auto-reconnect after time-outs

Other improvements:

  • Ever struggled with finding variables while debugging? Start typing anything to Search variables in debug.
  • Run configurations for HTTP Requests are now supported and created for you automatically as soon as you run a request.
  • Aliases References In Italic help to distinguish real class names and aliased ones.
  • PhpStorm will autodetect Configuration for Test Frameworks based on the composer.json and dotfiles and automatically create Run Configuration to run tests.
  • You’ll be able to generate setUp and tearDown methods for PHPUnit which are called every time before and after running each test method, respectively.