Loading...

Follow PhpStorm Blog - JetBrains PhpStorm on Feedspot

Continue with Google
Continue with Facebook
or

Valid

PhpStorm 2019.2 Release Candidate is now available!

Download PhpStorm 2019.2 RC from the EAP page or via the JetBrains Toolbox App.
Heads up! Unlike previous EAP builds, this RC requires a valid PhpStorm license to use it.

The list of changes is settled, and we’re making the final touches. Very soon there will be a detailed overview of the 2019.2 release on our website and a short one in a run-through video.
In the meantime, check the Beta release blog post for the list of the most notable features in 2019.2. And all changes of the current RC build are listed in the release notes.

Stay tuned as the 2019.2 release is just around the corner!

Your JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

Greetings everyone,

In our July’s edition of PHP Annotated, you can read about the latest on the PHP 7.4.0 alpha 3 release, ReactPHP 1.0 LTS, new proposals from PHP Internals, such as the Strict operators directive, as well as links for Laravel and Symfony, useful tools, videos, and a whole lot more!

⚡️ News & Releases PHP Internals
  • [RFC] Normalize arrays’ “auto-increment” value on copy on write – This RFC proposes to reset the “autoincrement” value when an array is being copied-on-write. As if a new empty array was created and then filled up entry-by-entry from the old one.
    $array = [0, 1, 2, 3];
            unset($array[3], $array[2]);
            $arrayCopy = $array;
            $arrayCopy[] = 2;
    
            // If the proposal is accepted, the following statement will be true.
            // Currently, the arrays below are not equivalent.
            assert($arrayCopy === [0, 1, 2]);

  • [RFC] Strict operators directive – PHP performs implicit type casting for most operators. The rules of conversion are complex and may lead to surprising results. This RFC proposes to introduce a new directive strict_operators, which will limit type conversions and make them throw TypeError for incompatible operands. The document describes in detail the current and proposed behaviors and has many examples. So far, it has been postponed until PHP 8.0, as the change is too big for 7.4. .
  • PHP Internals News #17: – With Theodore Brown and Bishop Bettini about Numeric Literal Separator.
  • PHP Internals News #18: – With Arnold Daniels about the Strict Operator Directive.
🛠 Tools Symfony Laravel 🌀 Async PHP 🚨 Security Misc Audio/Video

Thanks for reading!

If you have any interesting or useful links to share via PHP Annotated, leave a comment or drop me a message on Twitter.

Subscribe to PHP Annotated

Your JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

PhpStorm 2019.2 Beta is now available for download!

In this blog post, we round up the usual suspects the most notable new features in the upcoming release. We’ve covered each one in recent months, but thought you may want to see the list in one place and get a better picture of what all 2019.2 has in store.

Note that Beta builds are sufficiently stable compared to EAP builds, but some issues may still occur. If they do for you, please report them to our issue tracker. No license is required to use this build.

Get this Beta build via the Toolbox App, from the website, as a snap package (for Linux), or directly from PhpStorm – just select Automatically check updates for Early Access Program under Preferences | Appearance & Behavior | System Settings | Updates.

PHP

HTTP Client

Version Control

Docker

IDE

Web Technologies

Database Tools

These are just the key enhancements in the upcoming PhpStorm 2019.2. The release will include much more, so watch for the GA announcement to see all the features!

Please feel free to share with us any feedback that you have: add comments on this blog post or speak up in our public issue tracker. The PhpStorm 2019.2 release is coming soon!

The JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

PhpStorm 2019.2 EAP build 192.5587.32 is now available!

The Early Access Program gets close to a finish line! The release is coming soon, and we are focused on stabilization and polishing. The build includes fixes for PHP and the latest updates from the WebStorm and DataGrip teams and the IntelliJ Platform.

Download PhpStorm 2019.2 EAP from the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.2 EAP build installed, you should soon get a notification in your IDE about a patch update.

For the full list of changes in this build, please 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

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

PhpStorm 2019.2 EAP build 192.5438.24 is now available!

In this blog post, read about structural search preview in the editor, a browser for the Docker container file system, highlighting for associated loop when the caret is over break/continue operators, and autocompletion for callable types. All of these goodies are available for you to try in this EAP build.

The latest updates from Web, DB, and the IntelliJ Platform are incorporated too, as usual.

Download PhpStorm 2019.2 EAP from the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.2 EAP build installed, you should soon get a notification in your IDE about a patch update.

Structural Search Preview

Structural Search is a powerful feature that allows you to search for a specific code pattern in your project. It’s a lot more than just text search, as it is capable of operating with type information. Structural Search can be especially useful when you are searching through a large project, as a simple search may find too many occurrences. Go to menu Edit → Find → Search Structurally… to try it.

The problem with structural search is that it can be tricky to create a good search pattern. The upcoming PhpStorm 2019.2 will come with a welcome change – now the IDE will instantly highlight the found occurrences of your structural search in the editor. You don’t have to run a modified pattern again and again anymore as you experiment with your search pattern.

Now the IDE will display the values of the filters right in the editor area of the Structural Search dialog. (Previously, the filters were shown in the tooltips, so you had to hover over the variable to see it, and it was only possible to view one filter value at a time.)


Let’s say you have a class with some method and a parameter of a certain type. You want to find all the calls of the method where a certain subtype was passed as an argument. With the usual text search, this would be difficult to pull off. With Structural Search, it’s a piece of cake! Just open define the search pattern with the following filters:
$instance$ type=\Type ->$method$ text=methodName ($param$ type=\Param\SubType).

Learn more about what Structural Search is capable of in the documentation.

Highlight loop when caret is above break/continue

PhpStorm conveniently highlights both brackets or both parentheses when your caret is over the closing or opening one. If you are working with loops that have nested loops or branches, it may be not obvious which loop the break or continue statements are referring to.

In the upcoming 2019.2 release, the IDE will highlight the respective operators for you:

Autocompletion for callable type

Sometimes you may need to pass a function as an argument, for example, when you have a callable parameter. PHP allows specifying callables in different ways.
In 2019.2, PhpStorm will autocomplete callables in both string literals and arrays:

Updates for Docker

You may have already noticed that Docker has moved to a new tool window called Services. The goal of this tool window is to provide a single place to view all connections and running processes. So far in PhpStorm, it includes Docker and Database connections.

You can view all the service types as nodes, or you can alter the view to see them as tabs. Use the “Show in New tab” action from the toolbar, or simply drag and drop the needed node onto the edge of the Services tool window.

Browser for Docker container file system

In the upcoming PhpStorm 2019.2, it will be possible to view the file system of the running Docker container. The file system will be displayed in the newly added Files tab.

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

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

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

Your JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

PhpStorm 2019.2 is shaping up well and today we have the fifth EAP installment for you. In this build, we’re introducing a new popup-less commit flow for VCS, and an intention action to quickly convert comma-separated lists from a single line to multiline and vice versa.
As usual, it incorporates all the latest updates from Web, DB, and the IntelliJ Platform, too.

Download PhpStorm 2019.2 EAP from the EAP page or via the JetBrains Toolbox App. Or, if you have the previous PhpStorm 2019.2 EAP build installed, you should soon get a notification in your IDE about a patch update.

New Intentions Quickly convert a single line list to multiline, and back

Sometimes you have a long array written on one line, which grows and grows and runs off the screen. Sometimes the function argument names are too long to fit. Or you’ve refactored a method and reduced its list of parameters that were written down on multiple lines. In these kinds of situations, you will probably want to quickly reformat your code so that it either places each item on a separate line or, on the contrary, joins all items into one line.

PhpStorm 2019.2 comes with a neat new intention to do that. Just put the cursor on one of the coma-separate elements in the list, press Alt+Enter, and choose the action you need: “Split comma-separated values into multiple lines” or “Join comma-separated values into a single line”.

This works anywhere in PHP for arrays, argument lists, and parameter lists.


By the way, here you may need to fix your code style settings. Select the region in which you don’t like the code style, press Alt-Enter, and choose “Adjust code style settings”. For your ease, PhpStorm will offer to update only those settings that affect the selected lines:

Intention and inspections for Switch statement

Firstly, it is now possible to add branches faster by copying existing ones and then modifying them. Press Alt-Enter on the body-less case statement and choose “Copy ‘switch’ branch”.
Don’t forget to modify a copied one, because PhpStorm will warn you if a switch block has a duplicated branch, i.e. the same body, which can either be redundant or written by mistake:

Also, PhpStorm 2019.2 if you have a switch statement without a default branch in your code, you can quick-fix this with Alt-Enter as well:

VCS

In the status bar, you may have noticed the VCS section. It will usually show the branch name or commit hash where you are right now. If you click on it, you’ll see a list of available branches. Use it to quickly check-out to the branch you need, or create a new one.

In PhpStorm 2019.2, we’re making a couple of useful improvements here.

Improved Compare Branches action

When you compare two Git branches (by using the ‘Compare with Current’ action from the Git Branches popup menu), the IDE will display a Log tab which will lists all commits that exist in one branch and do not exist in the other.

Show Diff with Working Tree action

One more improvement in this area is that we’re adding a separate action called “Show Diff with Working Tree” to the Git Branches popup. It will provide you with the ability to view the Diff between the current and selected branches.

Commit from the Local Changes

Let’s say you have made a bunch of changes in files under different folders in your project hierarchy. To commit them, you go to the Local Changes tab in the Version Control tool window. You select the files and then see another popup to type in a commit message. At this point, you’re blocked by the popup and cannot see your project.

The upcoming PhpStorm 2019.2 lets you commit directly from the Local Changes. There is no longer any need to go through a separate Commit dialog!

Now while working on a commit, you will be able to browse through the source code, view the history for a specific file, view the diff for the file in the same area as the commit, and use the other features of the IDE. Previously, all these actions were impossible because the modal commit dialog blocked off all the other IDE functionality.

If you use Git or Mercurial, there’s an additional perk. When you press the Commit shortcut (Cmd-K), the IDE will select the modified files for the commit and focus on the Commit message field in the Local Changes tab of the Version Control tool window. You will be able to review the selected files and change the file or code chunk.

More commit options will be available under the settings icon on the Commit toolbar; these can be invoked on demand.

This is a long-awaited feature, but it also affects the current workflow. If you’d like to go back to the original Commit dialog, deselect the “Commit from the Local Changes without showing a dialog” checkbox under Preferences | Settings | Version Control | Commit Dialog.

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

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

Check out previous EAP blog posts for more:

Your JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

PhpStorm 2019.1.3 is now available!

This third minor update for the PhpStorm 2019.1 contains a bunch of bugfixes and improvements for PHP, the Web, and includes all the latest updates for the IntelliJ Platform.

Notable changes:

  • Added support for AngularDart (WEB-11590 +29)
  • Fixed: Changes to my Environment Variables in Configurations aren’t saving (IDEA-208525 +26)
  • Fixed: Cmd+E/Ctrl+E doesn’t work for iterating recent files after Recent/Recent edited files union (IDEA-207554 +25)
  • Fixed: Pressing the down key in the floating navigation bar closing it, but should show siblings in a popup (IDEA-209930 +17)
  • Added warning against usage of private fields in Angular Templates (WEB-34765 +9)
  • Fixed: Performance problem with suggestions and completion in project with redux-saga (WEB-38032 +6)

JBR 8 was updated to v1.8.0_202-release-1483-b58:

  • Fixed the issue with the IDE hanging after logging in on macOS: JBR-1393.
  • Fixed the rotation of fonts with embedded bitmaps: JBR-1397.

You can find the full list of bug-fixes and improvements in the release notes.

Download PhpStorm 2019.1.3 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

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

It’s been 10 years since PhpStorm first came out. Back in 2009, it had the working name ‘WebIDE’, which incidentally is why our tickets in YouTrack have the prefix WI-.

PhpStorm has grown tremendously and added many features and subsystems. Still, our team is small and close-knit. Our developers, QAs, and support engineers work together to deliver the PHP IDE to help you craft the best software. But the biggest part of our team is you – our community. Without your feedback, the product would have never become what it is today!

In this post, I’d like to tell you a little about how we manage feature requests and bug reports, and how to submit your feedback so that it will make an impact faster.

How to send us feedback

First of all, let’s see what channels are available for sending us feedback, be it bug reports, feature ideas, requests for help, and so forth.

Right in PhpStorm, just like in any other JetBrains IDE, you have the Help menu:

Under this menu, there are three options:

Contact Support… – this one will open a page with a form to submit a support request. If you don’t know how to do something, and an Internet search has not been helpful, use this option. Another use case is if you notice your system behaving strangely and you’re not sure if it’s a bug. Basically, for anything strange that you struggle with and need a hand, Contact Support.

Submit a Bug Report… – this lets you file a ticket in our issue tracker called YouTrack. Use it for both bug reports and feature requests. We’ll discuss it in detail below.

Submit Feedback… – want to praise us or blame us? Use this one, and be sure to add some details.

You can also poke us on Twitter by mentioning @phpstorm, and on Facebook by sending a direct message to facebook.com/phpstorm – we do read and respond to both pretty quickly!

YouTrack

Now let’s go deeper into getting around YouTrack and look at some dos and don’ts. I will also clarify some confusing things and dispel stereotypes and common misconceptions.

Submitting a ticket

When creating a new issue in YouTrack, the more information you provide, the better.

  1. Follow the template you’ll see in the description area.
  2. Add helpful screenshots or videos to describe the bug you’ve encountered.
  3. Provide the version of PhpStorm and your OS, as well as any additional information like the version of PHP, framework, library, or anything that may be relevant to the issue.
  4. Please always add a text version of the code in a comment. Our support engineers will be grateful!

Tip: Instead of gathering information manually, you can just use Help | Collect Troubleshooting Information and Help | Compress Logs and Show in ….

Anyway, it’s always better to report an issue than not to. Don’t worry if it’s not perfectly described, we’ll help you!

What do the different issue states mean?
  • Submitted – This is the first issue state you’ll see after creating a new issue. Soon enough, one of our QA or support engineers will go through and validate the ticket. They will check if it has all the needed information, whether other similar issues have already been reported, and if it might be part of an existing issue (see duplicates).
  • Open – This means we’ve acknowledged the issue, in other words, it’s reproducible, clear, has enough information, and in line with our product vision.
  • To be discussed – We’re not so sure about the request and would like to hear other opinions from the community. In this case, you can try to gather and provide some examples from well-known open-source projects or describe real-life workflows.
  • Declined – This one may sound mean and might make you feel disappointed. But a declined issue doesn’t mean that you’ve wasted your time. This is not necessarily the end of the issue: even if it’s been Declined at one point, it may still become Open and even Fixed later. Declined only means that right now we’re considering the request to be out of scope of our development activities.
  • Wait for reply – Our team members will set this status when more details are required from you. It could be additional logs, version information, steps, screenshots, and so on. This status is set manually, so there can be a delay between your answer and the status change.
  • In Progress – A developer is already working on the issue. Keep calm and code on
  • Backlog – This status means that the request is useful but it’s either impossible to process right now or we don’t see enough value in it. We will most likely reconsider it later. Still, if you have some new information to add, don’t hesitate to comment.
Duplicates

Sometimes you’ll see that a ticket you’ve reported was closed as a duplicate. In fact, approximately 60%-70% of submitted tickets are duplicates. Does this mean that submitting duplicate is a bad thing? Absolutely NOT! Every submitted ticket is important and valuable. Your specific example may describe an additional edge case, or it may narrow down the scope and help us fix the bug. In addition, when the original issue is fixed, a QA engineer will go through all duplicates to make sure that they are fixed as well. If not, your duplicate will be converted to a separate request. In short, any additional information can be helpful!

When you create a new issue, keep an eye on Similar Issues – one of them may have your very issue, already reported.

If you find an existing ticket that describes your problem exactly, it’s a good idea to comment on it. This will let us know that it’s still relevant for you. Try to leave meaningful comments (preferably a code sample or steps to reproduce the issue) and if possible provide the details of your use case.

Tip: Instead of commenting with “+1”, it is better to vote for the issue.

There’s one situation that deserves a special mention. If you’re facing a performance problem, please always create a separate issue. The reason is simple: without knowing the PhpStorm internals and access to profiler snapshots, you can never really know if your performance issue is a duplicate of someone else’s.

Votes

“Liking” an issue does two things: first, you help us prioritize it, and second, you subscribe to updates about the issue. Whenever there is any activity around the issue or its status changes, you’ll get an email notification.

When deciding what features to implement next, we consider multiple factors such as user votes, our internal research results, and the complexity-to-value ratio, among others. Please be aware that this decision may also be affected by potential API limitations or libraries that prevent a certain feature from being implemented. But at any rate, highly voted issues are never forgotten and are always on our short list!

Fields

Every ticket in YouTrack has a number of fields. Some of them are pretty self-explanatory, but a few others often cause confusion. In general, you don’t have to set any fields – we’ll do this for you based on our ticket-handling process.

  • Affected versions – this field represents the first version in which the issue was introduced, or at least was noticed. We don’t list all the affected versions here, as it could bloat the field and make it unreadable.
  • PS Public build – this field is for internal purposes and shows the exact build number with the fix. This build may not be public. Also, build numbers increase steadily. What that means for you: if the build you are looking into has a greater number than the PS Public build, then you’ll know it also contains the fix.
  • Fix versions – this is a set of versions that received the fix. It can contain multiple values, as we add important bug-fixes to previous versions along with the latest one. For example, the current PhpStorm version is 2019.1.2, and the previous one is 2018.3.6. We may release 2018.3.7 and 2019.1.3 with some fix, and the ticket for the bug will have both 2018.3.7 and 2019.1.3 in the ‘Fix versions’ field.
  • Tags – you should not be adding tags yourself, as these tags are to indicate different internal subsystems. Tags do not affect the priority.
  • Project – there are bigger subsystems bundled into PhpStorm that are developed by other JetBrains teams. If an issue you’ve reported belongs to one such subsystem, we may move your ticket to other projects, and the ticket ID prefix will change accordingly to IDEA-, WEB-, etc. No worries, it still complies with all the information above!

That’s all for today. Do contact us in whatever way works for you. We’ll do our best to help you! If there’s anything else you would like to know – just ask!

Your JetBrains PhpStorm Team
The Drive to Develop

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

The EAP for the upcoming PhpStorm 2019.2 is in full swing and today we have build number 4 for you to try out. Here are some of the goodies you’ll find inside:

  • Run Composer via any remote PHP interpreter.
  • Syntax highlighting for over 20 different languages.
  • Control PhpStorm-specific code style settings via EditorConfig.
  • Code completion for mistyped keywords and names.
  • Improvements for .gitignore files.
  • Choose columns to show in the VCS log.

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

Run Composer via any remote PHP interpreter

Just recently, in PhpStorm 2019.1.2, we added support for running Composer via a Docker image. Building on that, we can confirm PhpStorm 2019.2 will be able to run Composer via any remote interpreter configured in your IDE. It can be Docker, Docker-compose, Vagrant, or just a remote server via SSH.

To check out this feature, go to Preferences | Languages & Frameworks | PHP | Composer and select Remote Interpreter.

Choose any interpreter in the dropdown or add a new one!

Syntax highlighting for over 20 different languages

Do you have some files in your project in a language other than PHP? In PhpStorm 2019.2, we’re adding syntax highlighting for over 20 different programming languages, including Python, Ruby, and Go. It just works – no additional configuration needed.

With this change, we want to improve the experience of our users who occasionally have to look through some code written in different languages which are not fully supported in PhpStorm. But PhpStorm is still primarily an IDE for PHP and Web developers, so we don’t plan to extend the support for these other languages beyond syntax highlighting.

Syntax highlighting for these languages is built using TextMate grammars, and PhpStorm bundles a collection of grammar files for different languages. Currently, they are shipped as part of the TextMate Bundles plugin, so you can see the full list of supported languages under Preferences | Editor | TextMate Bundles.

Code completion for mistyped keywords and names

As you type, it often happens that you accidentally mix up some characters. For example, you’ll type funtcion or fnction instead of function. Now, code completion can understand this kind of typos and will still suggest the most relevant option for you.

This works in all supported languages and for all symbols – keywords, classes, functions, members, and so on.

EditorConfig supports PhpStorm settings and works per scope

In the last EAP build, we announced out-of-the-box support for EditorConfig.

This update brings two major improvements in that area. First, you can set different code style settings for the selected scope. This can be handy if your project is quite big with multiple teams working on it and using different code style conventions. All you need to do is place the .editorconfig file in the root directory of a folder. You can have as many .editorconfig files as you need in a single project.

Second, the IDE will now be able to manage not only EditorConfig standard properties, but also PhpStorm-specific options in the same file as well! The new IDE-specific options will be introduced to cover most of the code style settings, which before could be configured only via UI. These options will have the prefix ij_ to distinguish them from standard EditorConfig properties.

Also, you will be able to create the EditorConfig file from the Project View. Select a directory, call up the context menu, and choose New | EditorConfig. The IDE will provide you with a choice to create a standard EditorConfig file with standard and/or IntelliJ IDEA-specific properties. In this dialog, you can also choose the language options you would like to include in the EditorConfig File.

VCS Working with .gitignore

PhpStorm supports .gitignore and highlights ignored files and folders listed in the Project view.
Now, we’re making it a bit easier to add unversioned files to .gitignore. To do this in the Version Control tool window, right-click on a file in the Unversioned files group and select Add to .gitignore.

Code completion is available for file and folder names in your .gitignore file. Cmd-click on the name to jump to it in the Project view.

Hide author, data or hash from Log

The Log view in the Version Control tool window shows you the latest commits made in your project. By default, it shows you the commit message, as well as the author, date, and hash of the commit. Now you can hide the columns you don’t need – click the eye icon and then select Show Columns.

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

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

  • Show original
  • .
  • Share
  • .
  • Favorite
  • .
  • Email
  • .
  • Add Tags 

Separate tags by commas
To access this feature, please upgrade your account.
Start your free month
Free Preview