PhpStorm 2020.1 has tools to help you upgrade to the latest PHPUnit version quickly and easily. Every deprecation will be highlighted in the editor. Put the cursor over a deprecated item and press ⌥+Enter, then select your preferred quick-fix from the list that appears. Or just choose it at the bottom of the error description window. PhpStorm is also available as a snap package. If you’re on Ubuntu 16.04 or later, you can install PhpStorm from the command line. Sudo snap install phpstorm -classic. PhpStorm 2020.1 adds inspections and quick fixes that help you avoid errors and upgrade to PHPUnit v9 more easily. You can create a test by moving the cursor over a class and using alt/option + enter to select the “Create new PHP Test” action. Improved Spelling and Grammar Checking Experience. PhpStorm 2021.1 is a major update that introduces a built-in preview for PHP and HTML files, 20+ new inspections to help prevent bugs, improvements in all subsystems, and pair programming via Code With Me.
- Phpstorm 2020.1 Release Date
- 404 Not Found Phpstorm 2020.1.2
- Phpstorm 2020.1 License Github
- Phpstorm 2020.1.2 Download
- 404 Not Found Phpstorm 2020.1.2
PhpStorm 2020.1 will know when the variable is null or not and prevent the problem. If there is a null guard, then later in the code null will not be suggested as a possible variable type: Infer a non-generic array type from an initializer Let’s say you have an array with a known set of items and later you want to iterate over items.
Early Access ProgramNewsletterThe Early Access Program (EAP) for PhpStorm 2020.1 starts today! The first EAP build, 201.4515.32, is available for download from our website and in the JetBrains Toolbox App, and as usual it’s absolutely free to use.
At the moment, we are trying to improve on existing subsystems rather than bring a lot of new functionality. In this blogpost, you can read about how we’ve improved Composer support and added a few new features, including coverage reports with PCOV and PHPDBG, customizable syntax for Twig Support, and more.
5 facts about Early Access Programs that you should know:
- Important! PhpStorm EAP builds are not fully tested and may be unstable.
- You can install an EAP build side by side with a stable PhpStorm version to try out the latest features.
- We will publish a fresh build for the upcoming version of PhpStorm every week.
- EAP builds provide access to the newest features currently being developed.
- EAP builds are free to use but expire within 30 days of the build date.
Composer support improvements
It’s hard to imagine a PHP project without a composer.json file in it. Yet only 20% percent of PhpStorm users who have composer.json files in their projects have installed the PHP composer.json support plugin.
We reached out to the author of the plugin, Piotr Śliwa, and agreed that the PhpStorm team will take it over and rebuild it from scratch to bring out of the box support for composer.json to all users.
Thanks to Piotr for the great job building this from the ground up for the community!
So let’s take a look at what’s in store for composer.json in the PhpStorm 2020.1 release.
In short, the 2020.1 release will bring you a number of convenient completion features, resolving paths and references, some inspections, and other useful time-saving features.
Create new composer.json action
When you start a new project, you can create a composer.json file in the IDE by right-clicking in the project tree and selecting New -> composer.json File.
Additionally, you can modify the template for new composer.json files under Preferences/Settings | Editor | File and Code Templates in the Files section.
Completion for license and minimum stability version
Now you can just start typing the name of a license type or package version, or press Cmd(Ctrl)+Space, and choose the license you need from the suggestion list.
Completion for PHP and extensions
You can specify the required PHP version and a list of extensions to run the app. PhpStorm will suggest choosing from the list of available versions.
Managing dependencies
We are thinking about deprecating the manage dependencies dialog because working with the packages from inside the composer.json file is often far easier.
For example, if you need to add a new package, you can start typing its name in the file, and just like with PHP and extensions, it will be autocompleted for you. All the available versions of the specific package will be listed, too.
Additionally, the info popup will show details about the package, including the number downloads and stars it has.
All the information is taken from packagist.org and cached.
Updating and installing packages
PhpStorm will detect and highlight if there’s a dependency that is specified in composer.json but that has not yet been installed.
You can easily install a missing dependency from inside the editor just by hitting Alt+Enter! This fix allows you to update all dependencies or just a specific one.
Navigation to files and folders
You can use Cmd(Ctrl)+Click on a package and PhpStorm will highlight the folder of that package under the vendor
directory in Project Tree.
The same Cmd(Ctrl)+Click (or Cmd(Ctrl)+B) trick works to open any link in composer.json in a new browser. And it works for files, as well.
Completion in Autoload Sections
If you need to add an entry under either the “autoload” or “autoload-dev” section, you’ll now find it a bit quicker, as both namespaces and folder paths will be autocompleted based on the classes and folder structure you have.
Cmd(Ctrl)+Click (or Cmd(Ctrl)+B) also works on paths, taking you to that target folder in the Project Tree.
Exciting Additions for Scripts
The “scripts” section contains commands for the package, such as “test”, “deploy”, “cache:clear”, etc.
It’s awesome when package developers specify commands via the unified “scripts” interface. That’s because any package user can then execute composer run --list
or just take a look at composer.json and instantly know what commands are available and how to run them without diving deep into the documentation or code.
In Composer, a command in the scripts section can be either a PHP callback (defined as a static method) or any command-line executable command.
PhpStorm 2020.1 will include completion and navigation for classes and static method names. It will also include completion for binaries, available under the “vendor/bin” directory.
Phpstorm 2020.1 Release Date
Running scripts
Each entry in the scripts section has a play icon in the gutter that you can press to instantly run it.
This will also create a run сonfiguration which allows you to run the command using the shortcut Ctrl+R:
Quality Tools Setup
If there is a FriendsOfPHP/PHP-CS-Fixer in your dev-dependencies, PhpStorm will now check whether the corresponding inspection is enabled and whether the ruleset has been adjusted. You can use Alt+Enter as a quick fix if the lines are highlighted:
Code Coverage with PCOV and PHPDBG
404 Not Found Phpstorm 2020.1.2
In PHP, probably the first tool that comes to mind (right after PHPUnit) when you think about code coverage is Xdebug. This is not the only option, however. And if you only need code coverage without the debugging capabilities, you may want to try krakjoe/pcov – a lightweight extension for generating coverage reports.
To get a coverage report, make sure you have the extension installed with your PHP interpreter (either remote or local). Then create a Run configuration for tests. In the Run configurations settings, there is a dropdown to choose a preferred coverage driver:
After selecting the preferred driver, press the Run with Coverage button in the main toolbar (or use Shift-Shift to find the action) and observe see the coverage results:
Another tool for generating coverage reports is PHPDBG. It uses a less robust detection of executable code and sometimes generates reports with known defects, unfortunately. On the other hand, however, it comes bundled with PHP 5.6+, and you don’t need any additional extensions to install it.
In PhpStorm 2020.1 you can use PHPDBG as a code coverage driver, as well.
You can find out more about the differences between the code coverage reporting of Xdebug, PCOV, and phpdbg in this GitHub repository.
Phpstorm 2020.1 License Github
Customize Lexer Syntax for Twig
Sometimes it makes sense to change default tags for Twig templates, like, for example, when you are using it with Angular because it has the same syntax.
Phpstorm 2020.1.2 Download
In PhpStorm 2020.1, syntax for Twig templates can be configured under Preferences/Settings | Languages & Frameworks | PHP | Twig.
Other
There’s also a host of general changes that are available for all JetBrains IDEs, thanks to the IntelliJ Platform team:
- The brand-new JetBrains Mono font (Settings/Preferences | Editor | Font).
- The IDEs now use the reworked Interactively Rebase from Here dialog, which allows you to edit, combine, and remove your previous commits.
- The light theme is now unified for all operating systems and goes by the name IntelliJ Light. If you’d like to go back to the old theme, you can switch under Preferences/Settings | Appearance & Behavior | Appearance | Theme.
- The Quick documentation popup now appears on mouseover by default. You can disable this option in Settings/Preferences | Editor | General.
The release brings a lot more, and we will describe other notable changes in subsequent posts, so follow our updates on Twitter and Facebook!
The full list of changes, including bug-fixes and improvements, is available in the release notes.
Please report any problems you find to our issue tracker, or by commenting on this post. Your feedback is much appreciated, and the most active EAPers will get special limited-edition gifts from us! That’s right, the PhpStorm elephpant is finally coming!
404 Not Found Phpstorm 2020.1.2
Your JetBrains PhpStorm team
The Drive to Develop
PHP Inspections | Bug | WI-53171 | Trait collision false positive in case one trait uses another and overrides the method |
PHP Lib Stubs | Feature | WI-53145 | Add stub for phpredis extension RedisSentinel Class |
PHP Type Inference | Bug | WI-53220 | PHPStorm Freezes - Win10 x64 |
Core | Bug | IDEA-243130 | GoLand 2020.1.3 closes main window and can't bring to front if press ESC on `goland --help` window. |
Bug | IDEA-241340 | Timeout in tests during BaseFixture.disposeRootDisposable caused by LaterInvocator | |
Core. File System | Bug | IDEA-241524 | When I create new files using de Angular CLI, the files are not visible immediately in the Project tab |
Bug | IDEA-239947 | Deadlock between EDT and Jar file attributes updater | |
Core. IDE Settings | Usability | IDEA-240607 | Import Settings should warn if user has incorrectly selected a folder without settings |
Core. Installation | Bug | IDEA-242558 | Patches for the IDE with 32-bit JDK are not applied |
Core. Plugin Management | Bug | IDEA-240538 | Theme plugin auto apply after update reseting previous settings |
Core. Project Settings | Bug | IDEA-238053 | Project Structure dialog does not apply changes when Eclipse project format is used |
Usability | IDEA-240068 | error: java: error: release version 15 not supported when compiling project with JDK_X language level in misc.xml | |
Editor. Large Files | Bug | IDEA-243589 | IDE freeze / crash when large file is truncated |
Tools. Docker | Bug | IDEA-236451 | Docker: Exec tabs for a container are closed only from the second time. |
Bug | IDEA-240719 | Docker's multi-tab drawing problem | |
User Interface | Bug | IDEA-240549 | Minor: missing space in Reopen Project dialog |
Performance | IDEA-238301 | Subpixel(LCD) text is slow with UI font in 2020.1, switching to greyscale antialiasing helps | |
User Interface. Graphics | Bug | IDEA-242042 | Some icons are missing and some hardly visible in the Main menu |
User Interface. Project View | Performance | IDEA-237974 | UI freeze: com.intellij.openapi.module.impl.ModuleGroupersKt.splitByDotsJoiningIncorrectIdentifiers |
Version Control. Log | Bug | IDEA-221930 | Checkout revision keymap is gone. |
DB Connectivity | Bug | DBE-10963 | pgpass fails to parse if it has blank lines in it |
DB Console | Bug | DBE-10837 | Error: invalid identifier in Snowflake |
Bug | DBE-9876 | Force executing queries in read-only mode runs the wrong query | |
DB Diff | Bug | DBE-10727 | Compare schemas does not respect the column order |
DB Refactoring | Usability | DBE-10543 | Button layout exactly the wrong way round (Compare DDL with Database) |
Data Views | Usability | DBE-10707 | Generated filter from Filter By context menu clears MongoDB projection |
Usability | DBE-8336 | Shorten tab names in DataGrid with placement on the right/left | |
PL & DDL Editor | Feature | DBE-5756 | Database - Adding datasource as DDL - adding whole folders besides files only |
SQL Completion | Feature | DBE-11004 | SQL Server Does Not Recognize 'ADD SENSITIVITY CLASSIFICATION' Statement |
SQL Format and Style | Bug | DBE-10779 | Wrong indent when a command starts with a comment |
SQL General | Bug | DBE-10726 | No ability to create a DDL data source if there are no folders attached |
Bug | DBE-10999 | Index creation with INCLUDE NULL KEYS causes error | |
SQL Generation | Bug | DBE-10724 | Snowflake Table Creation Generates Invalid DDL w/ Comments on Primary Keys |
Bug | DBE-10334 | Modify table action no more works from the editor | |
SQL Highlighting | Bug | DBE-10778 | MariaDB Dialect JSON_QUERY not recognized |
Bug | DBE-11007 | ORDER BY ... FOR JSON in subquery | |
Bug | DBE-10748 | Errors in SQL Editor for correct Oracle SQL statements | |
SQL Resolve | Feature | DBE-10457 | New quick fix: refresh schema |
No subsystem | Bug | WEB-45758 | Stuck Typescript Code Analysis and InvalidPathException |
CoffeeScript | Bug | WEB-45537 | CoffeeScript import can no longer be automatically inserted |
JavaScript | Bug | WEB-45402 | Structure view for JavaScript file fails to filter attributes and methods |
Performance | WEB-45974 | Webstorm stucks on indexing | |
Exception | WEB-45611 | Code Analysis Crashes when trying to commit | |
JavaScript. Frameworks | Bug | WEB-45531 | Error reported when using Vue filters with specific names |
Bug | WEB-45546 | Vuex: inspection text is empty on unresolved Vuex symbols | |
TypeScript | Bug | WEB-45065 | Extra # is added after completing #-private fields |