php[world], Bulgaria PHP, PHP.BARCELONA, SymfonyCon – Cool Events to Go to This Fall

This fall the PhpStorm team is happy to join four awesome PHP conferences around the world!

At our booth, you’ll meet some of the folks who actually work on PhpStorm. They will be glad to answer any questions you have in mind, share information about future releases, or help with any issues you’ve encountered.

Swing by to say hi, grab cool swag, show off your skills, learn something new in our Code Golf challenge, and most importantly have fun!

php[world] – October 22–25, Washington, D.C., USA

Since 2014, php[world] has been creating an environment where all PHP developers come together to collaborate and build a stronger community. For this 6th php[world] conference, the org team has curated a special lineup of talks, workshops, and full-day training classes. There will also be a couple of amazing keynotes and two panels on the past and future of PHP and frameworks.

JetBrains Team: Olga Strizhenko (Software Developer), Ivan Fedorov (QA Engineer)

Bulgaria PHP – November 8–10, Sofia, Bulgaria

The third edition of this community-driven event in Bulgaria will have 35 speakers with a wide range of topics on two conference days with three tracks, a workshop day with four workshops, discussions, a cocktail party, and lots of PHP folks you all know!

JetBrains Team: Andrey Sokolov (Software Developer), Kirill Smelov (Software Developer)

PHP.BARCELONA – November 12–13, Barcelona, Spain

Barcelona is a place you want to visit this fall to see the beautiful city and diligently crafted PHP conference. Among other top-notch speakers, the lineup includes a talk from Nikita Popov.

JetBrains Team: Nikita Popov (Software Developer), Olga Strizhenko (Software Developer), Dmitry Tronin (Support Engineer), Artemy Pestretsov (Software Developer)

SymfonyCon – November 21–23, Amsterdam, Netherlands

Without any doubt, this is the main Symfony event of the year. So if you like the framework, consider going to Amsterdam this November to see two days of interesting talks, learn at two days of workshops, take part in a hack-day to give back to the community, and… have we mentioned having lots of fun?!

JetBrains Team: Anton Monakov (Technical Writer), Ivan Fedorov (QA Engineer)

Find all the upcoming PHP conferences around the world at confs.tech/php and PHP meetups at friendsofphp.org.

See you soon!

Posted in Conferences & Events | Leave a comment

PHP Annotated – October 2019

php_annotated

Greetings everyone,

It’s time for our October edition of PHP Annotated! Get the latest on PHP 7.4.0 RC 3, GitHub dependency graph support for PHP, upgrading PSR standards, RFCs from PHP Internals, and the Coordinating PHP project. We’ll share links for Laravel and Symfony, useful tools, videos, podcasts, and a whole lot more!
Continue reading

Posted in PHP Annotated Monthly | Tagged , , , , , | Leave a comment

PhpStorm 2019.3 EAP #4

The fourth build of the PhpStorm 2019.3 EAP (193.4099.12) is now available!

In this build, we were mainly focused on fixing bugs and usability issues, but we’ve also improved further PhpStorm’s PSR-12 support.

Download the PhpStorm EAP #4 build from the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.3 EAP build #3 (193.3793.21) installed, you should soon get a notification in your IDE about a patch update.

PSR-12: lower case keywords and trait imports on individual lines

PhpStorm is almost ready for the full PSR-12 support, and this builds brings a couple of additional features.

When you reformat code, all keywords are lowercased in all code styles. The only exceptions are the true/false/null constants. Their style can still be configured in Editor | Code Style | PHP | Code Conversion (by default for PSR-12, they are lowercased as well).

In addition, a new inspection will detect and suggest to fix the situation when you import multiple traits on a single line.

Multiple traits on a single line

Notable bug-fixes:

  • IDEA-125032 Stuck in endless loop of modal SVN Authentication Required Dialog (+37)
  • IDEA-134603 When switch from task to task with branch having new files these previously opened files are not reopened (+18)
  • IDEA-214780 TouchBar action update freezes UI thread for a long time (+11)
  • IDEA-192646 Option for Commit Date rather than Author Date in File History and Annotations (+9)
  • WI-48657 @method self not works anymore at EAP (+7)
  • WEB-38989 Optimize memory used for source maps (+7)
  • WEB-36015 Debugger attaches to “Before Launch” gulp script, application not launched (+6)
  • WI-33253 Download project files will trigger “auto upload external changes” (+5)
  • WI-48766 property inspection switches parent and child class (+5)


For the full list of changes in this build, see the release notes.

Check out previous EAP blog posts for more updates and added features:

Please report any problems to our issue tracker or comment on this post. Your feedback is much appreciated!

Your JetBrains PhpStorm Team
The Drive to Develop

Posted in Early Access Program | Leave a comment

PhpStorm 2019.3 EAP #3

The third build of the PhpStorm 2019.3 EAP (193.3793.21) is now available!

With this build, you can try out a bunch of enhancements for the editor-based HTTP client, new options for filtering find usages results, a new UI for cloning projects from version control and GitHub, and the ability to search within the selected text. As part of the continuing quality marathon, this build also brings usability and performance improvements.

Download the PhpStorm EAP #3 build from the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.3 EAP build #2 (193.3519.29) installed, you should soon get a notification in your IDE about a patch update.

HTTP Client improvements

PhpStorm comes with an editor-based HTTP client and we have made a bunch of improvements for it in 2019.3.

Editor toolbar

Whenever you open an .http file, you will now see a toolbar with quick access to common actions:

  • Add request – create requests from templates (try Live Templates too by pressing CMD+J in the editor).
  • Convert from cURL – alternatively, you can just paste a cURL request string right in the editor.
  • Open Log – view the list of sent requests and open/compare the responses.
  • Examples – explore a handy collection of HTTP requests.

http-client-toolbar

Folding requests

If you are sending a request with a long body, for example, multipart form data or maybe many headers, you may want to fold it to reduce noise in the editor.
You can fold the whole request leaving the first line, or only the body part:

http-client-folding

Completion for hosts

When composing a new request, you no longer need to type the hostname you used earlier. PhpStorm will offer you a list of hostnames in the suggestion list:

http-client-host-completion

Dynamic variables

We’ve added three dynamic variables that you can use anywhere in the requests:

  • $uuid – Generates a new UUID-v4 (e9e87c05-82eb-4522-bc47-f0fcfdde4cab)
  • $timestamp – Current Unix timestamp (1563362218)
  • $randomInt – A random integer between 0 and 1000

Use double curly brackets to insert one of these variables where needed:
GET http://httpbin.org/anything?id={{$uuid}}&ts={{$timestamp}}

http-client-dynamic-variables

Learn more about the editor-based HTTP client in the documentation.

Filtering in usages search results

When you Cmd + Click or press Cmd + B (Ctrl + B) on a class declaration, you’ll see the list of all its usages in the project. This list can be quite long for some entities, so PhpStorm provides a couple of new options to quickly filter these results.

Ignore $this-> and self:: access

By default PhpStorm will now filter out usages of the class where some of its members are accessed via $this-> or self:: references. You can see these lines in the search results by clicking filter-this-inline icon:

filter-this

Ignore import statements

In PhpStorm 2019.3, it is also possible to quickly filter out usages in import statements. You can toggle this option by clicking on the icon filter-imports-inline:

filter-imports

Find in selection

Select the code piece you need in the editor and invoke the Find action (CMD + F / Ctrl + F) and the IDE will search only in the selected area. If you need to extend the search area and search throughout the whole file, press CMD + F / Ctrl + F again, or alternatively toggle the In Selection option in the toolbar.

find-in-selection

New UI for cloning projects from the version control and GitHub

Now when you clone a project from a version control system (from the IDE Welcome screen or the VCS menu), you will see an updated Get from Version Control dialog.
With this redesign, we mainly want to improve the experience you have of getting a project from your GitHub account. You can now select GitHub on the left-side of the dialog and log in to your account from there.
After this, you can scroll through the list of repositories in your account and in organizations you belong to, and find the one you want to clone and start working with.

new-clone-ui


For the full list of changes in this build, see the release notes.

Check out previous EAP blog posts for more updates and added features:

Please report any problems to our issue tracker or comment on this post. Your feedback is much appreciated!

Your JetBrains PhpStorm Team
The Drive to Develop

Posted in Early Access Program | Tagged , , , | Leave a comment

PhpStorm 2019.2.3 is released

PhpStorm 2019.2.3 build 192.6817.20 is now available!

This third minor update for v2019.2 delivers many important fixes, better performance, and improved usability.

Contrast Scrollbars

PhpStorm provides lots of customization capabilities, but the one missing was the ability to set colors for the scrollbars. By default, the scrollbars are made to be less distracting.
In this release, we’ve introduced a new option Use contrast scrollbars under Preferences | Appearance & Behavior | Appearance to make them more visible.

scrollbars-contrast

Other notable changes:

  • The IDE now supports native password storage on Linux using KWallet (IDEA-163275 +136)
  • We’ve brought back the old ‘Compare with Current’ dialog (IDEA-209664 +25)
  • Fixed the IDE freezes caused by a lot of ignored files (IDEA-219152 +11)
  • Fixed: PHPStorm 2019.2.1 fails to upload temporary file for phpcs (WI-48678 +5)
  • Fixed: autocomplete skips parameters inside closure when using “use” (WI-48124 +4)
  • Improved the performance of SVN operations (IDEA-219881 +2)
  • Fixed: Slow response in the large Blade files (WI-47694 +2)

See the full list of bugfixes and improvements in the release notes.


Download PhpStorm 2019.2.3 build 192.6817.20 for your platform on the website or click Update in your JetBrains Toolbox App.

We appreciate you reporting any bugs and feature requests to our Issue Tracker.

Your JetBrains PhpStorm Team
The Drive to Develop

Posted in Release Announcements | Tagged , | Leave a comment

PhpStorm 2019.3 EAP#2

The second build of the PhpStorm 2019.3 EAP is now available!

This build delivers PHPDoc improvements, lets you view the GitHub PR timeline and customize time format in VCS log, provides new quick-fixes for if-else constructs, and adds a couple of neat timesavers in PHP.

Download it on the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.3 EAP build (193.2956.42) installed, you should soon get a notification in your IDE about a patch update.

Download PhpStorm 2019.3 EAP

If you’re not yet familiar with our Early Access Program, here are the basics you should know:

  • Every week we publish a fresh build for the upcoming version of PhpStorm.
  • EAP builds provide access to the newest features we’re currently developing.
  • EAP builds are free to use but expire within 30 days of the build date.
  • Important! PhpStorm EAP builds are not fully tested and might be unstable.
  • You can install an EAP build side by side with a stable PhpStorm version to try the latest features.

PHPDoc

PHPDoc blocks in PHP are an integral part of development. They can even affect the execution if you are using advanced annotations and AOP techniques.
Traditionally in PhpStorm, you had resolving for FQNs and links in PHPDoc, but the whole block was displayed in one color and styled just like regular comments.
Now, starting with PhpStorm 2019.3, doc blocks will get full highlighting for all the types, variables, params, methods, and properties. If you have HTML in your comments, it will also be highlighted as such.

phpdoc-light-theme

Let us know how you like the changes and what we should improve!

Quick-fixes for conditions

The conditional if-else statement is probably the most used construct in the language. So in PhpStorm 2019.3, we’ve added a few quick & neat actions to manipulate conditions.

If you have an assignment inside an if statement, PhpStorm will suggest extracting it to a variable with Alt+Enter:

if-assignment-extract

If you have nested if conditions, it is now possible to quickly merge them into one with Alt+Enter:

if-merge-conditions

You can merge else followed by if into a single elseif:

else-if-merge

Or do the opposite and split elseif into else and if:

elseif-split

Other Improvements

Auto-insert <?php when just <? is typed in

Short tags are likely to remain a part of PHP at least for the next few years, as the last RFC vote did not pass.

But PhpStorm will help you a bit with deprecating short tags, by automatically inserting <?php as soon as you type <?:

php-no-short-tag

Automatically complete ‘=’ to ‘=>’ after array key

Another small timesaver in the upcoming 2019.3. When you are adding an item into an array, and you type a key and then want to type => to specify a value, just press = and PhpStorm will auto-insert =>:

array-quick-typing

Fonts & colors for $this variable

While coding, we sometimes spend more time reading than writing, so coloring and highlighting really matters. In 2019.3, you will be able to choose the font and colors for occurrences of $this:

this-color-and-fonts

What else would you like to have improved in highlighting? Let us know!

VCS

Date format customization

Sometimes, when you are looking through a version history log, it’s easier to comprehend the information if the time is displayed in a relative format. Or, if you are from the US, you are most likely used to mm/dd/yyyy.

In PhpStorm 2019.3, it is possible to configure the date format for VCS Annotate and VCS Log actions.

vcs-date-formats

In fact, we’ve added the API for date/time customization in the IntelliJ Platform, and we will add more UI areas where date and time formats are important. Feel free to create feature requests for them.

Timeline for GitHub Pull Requests

Some time ago we introduced initial support for GitHub Pull Requests, to let you view the list of all Pull Requests in the project and browse through them to see the changes and their current status. While it was great to have this ability in the IDE, there were some known limitations, for example, being unable to view reviewers’ comments.

The upcoming PhpStorm 2019.3 will add this missing piece to the picture. It will display a timeline with all the relevant information about a pull request such as comments, reviews, and updates made to pull requests – basically, all the information you may need to make a decision whether or not to merge this pull request.
Simply double-click a pull request, and the IDE will display the comments in the editor tab.

github-timeline

For the full list of changes in this build, including both bug-fixes and improvements, consult the release notes.

Please report any problems to our issue tracker, or by commenting on this post. Your feedback is much appreciated!

Your JetBrains PhpStorm Team
The Drive to Develop

Posted in Early Access Program | Tagged , | Leave a comment

PhpStorm 2019.2.3 RC

We’ve just rolled out a release candidate for the third minor update for PhpStorm 2019.2. Download it here or via the Toolbox App. Please give PhpStorm 2019.2.3 RC build 192.6817.12 a try and share your feedback with us!

Continue reading

Posted in Release Candidates | Leave a comment

PhpStorm 2019.3 Early Access Program is Now Open

Today we are starting the Early Access Program (EAP) for PhpStorm 2019.3. The first EAP build, 193.2956.42, is available for download from our website and in the JetBrains Toolbox App.

blog@2x

Every release cycle, we invest a lot of effort in fixing bugs and improving the performance of all our IDEs at JetBrains. This time, we’re going even further. We’ve organized a quality marathon, during which all of our teams that work on the IntelliJ Platform or benefit from it will focus almost exclusively on performance and quality.

The PhpStorm team is in the marathon as well, which means you’ll see many long-standing issues and pain points finally resolved, especially those that affect most users. You may expect fewer new features added to PhpStorm this time, but we promise to make you happy with full PHP 7.4 support, PSR-12 code style, some new functionality, and great enhancements.

In the current build, you’ll find support for many PHP 7.4 features, the ability to specify the interpreter for PHP test run configurations, and the ability to inject PHP in literals. The update incorporates all the latest improvements from the IntelliJ Platform as well.

Download PhpStorm 2019.3 EAP

Continue reading

Posted in Early Access Program, Newsletter | Tagged , , , , | Leave a comment

PhpStorm 2019.2.2 is released

PhpStorm 2019.2.2 build 192.6603.42 is now available!

In this second minor update for PhpStorm 2019.2, we are happy to bring you improved type inference and parameters info tooltip, as well as a bunch of other bugfixes and improvements for PHP, the Web, and all the latest improvements made to the IntelliJ Platform.

Improved Type Inference

We’ve made a lot of changes in the PHP type inference system, which affect the handling of $this/self/static return types. The following long-standing issues, as well as many others, are now fixed:

  • WI-28728 +18 Fixed: No code completion in foreach loop if array of object is generating from static method with static array type hint
  • WI-18067 +18 Fixed: Late Static Bindings errors on calls in non-static context
  • WI-38803 +13 Fixed: PHP 7 self return type incorrectly analyzed in chained method calls
  • WI-29051 +12 Fixed: $this[]|static[] as return type breaks chained type hinting for variable with element access

type_inference

Detailed Parameter Description

Have you ever wondered what exactly should be passed to the function or method as an argument? Previously you had to open Quick Documentation and scroll to the parameter description. Now you can press CTRL+P/CMD+P (Parameter Info) and view the description right away.

parameters_tooltip

Try it when you don’t remember what should go in that place:

parameter_info

Other notable changes:

  • Fixed: IDE opens on a last known location when external monitor is detached: outside of screen (IDEA-153291 +36)
  • Fixed: Stretch left keybinding doesn’t work (IDEA-218926 +14)
  • Fixed: Nested sources folder not showing in Project view after updating to 2019.1 (IDEA-215752 +14)
  • Fixed: Enter Full Screen & Exit Full Screen does not execute when invoked via find action (IDEA-192504 +13)
  • Fixed: Exception occurs on applying “Show F1, F2, etc. keys on the Touch Bar” option (IDEA-202927 +12)
  • Automatically escape special symbols for “Find” and “Find in Path” dialogs if “Regex” (“Regular Expression”) is checked (IDEA-109899 +12)
  • Fixed: Xdebug 2.6.1 Profiler snapshot not opening (WI-44833 +8)
  • Fixed: Docker exec tab does not correctly wrap (IDEA-179900 +8)
  • Fixed: Freeze on project opening (IDEA-220475 +6)

You can find the full list of bugfixes and improvements in the release notes.


Download PhpStorm 2019.2.2 build 192.6603.42 for your platform on the website or click Update in your JetBrains Toolbox App.

We appreciate you reporting any bugs and feature requests to our Issue Tracker.

Your JetBrains PhpStorm Team
The Drive to Develop

Posted in Release Announcements | Tagged , | Leave a comment

PhpStorm 2019.1.4 is released

It’s been a while since we’ve released a bugfix update for PhpStorm 2019.1, so here is one – PhpStorm 2019.1.4.

This minor update for 2019.1 has lots of fixes, performance improvements, fixed regressions, and more.

Continue reading

Posted in Release Announcements | Tagged , | Leave a comment