Advanced PHP Code Sniffer Options in PhpStorm 5.0
New version allows to specify your own coding standard with a root directory outside default PHP Code Sniffer’s Standards directory. In addition it provides a better control on PhpStorm integration with the tool to optimize its use in a particular environment.
Specfying Your Own Coding Standard
If you have created your own coding standard according to this tutorial, you can specify it in PHP Code Sniffer validation inspection settings. Choose Settings|Inspections|PHP|PHP Code Sniffer validation to get the following options panel:
Select “Custom” in coding standard combo box and click […] button next to the field. You will get “Custom Coding Standard” dialog which allows you to give a root directory of your coding standard. The directory must contain a ruleset.xml file.
Since there is no guarantee that ruleset.xml is valid or points to valid rules, you may start getting error notifications from PHP Code Sniffer every time you open or edit a PHP file. Here is an example:
If this is the case, you have to check your rules and make sure they work when used directly with phpcs command line tool.
A note on sharing a ruleset with the team via project (VCS)
If you would like to share the ruleset with your team, you can put it under project (and VCS) root and specify your coding standard root in inspection settings above. But in order to share these settings, make sure that “Share profile” flag of the selected profile is on like in this example:
Running PHP Code Sniffer in Batch Mode
In version 5.0 PHP Code Sniffer inspection can be run in batch mode just like any other inspection. If you choose Code|Inspect code, you may get something like this:
Note the results from PHP Code Sniffer validation.
Advanced Tool Options
First of all PHP Code Sniffer tool settings are moved to a separate panel under PHP settings to distinguish them from inspection parameters which can be shared via project. Tool settings are always local (PC-specific). Currently you may find the following if you choose Settings|PHP|Code Sniffer:
PHP Code Sniffer path is the same as it used to be and “Validate” button is there too. But there are two new options:
- Maximum number of messages per file: limits the total number of messages reported to the given number (14 in the example above), all other messages are rejected and a special warning “Too many PHP Code Sniffer messages” is shown in the code.
- Tool process timeout: allows to control maximum time in which a result from PHP Code Sniffer should be expected. If this time is exceeded, the process is killed to prevent excess CPU and memory usage. Compared to the previous solution where the timeout was hard-coded, this gives you a possibility to fine tune PHP Code Sniffer process behavior depending on PC configuration and specific rule sets.
More Information and Your Feedback
If you are reading about PHP Code Sniffer integration in PhpStorm for the first time, I recommend to take a look at the previous post here. If you give the feature a try, please don’t forget that your feedback is extremely important for us. Don’t hesitate to submit any kind of findings and/or new ideas in YouTrack. And thank you for using our IDE!
Working with Windows Azure SQL Database in PhpStorm
PhpStorm provides us the possibility to connect to Windows Azure SQL Database right from within the IDE. In this post, we’ll explore several options that are available for working with Windows Azure SQL Database (or database systems like SQL Server, MySQL, PostgreSQL or Oracle, for that matter): …
Change signature refactoring in PhpStorm
A very powerful refactoring is the Change signature refactoring in PhpStorm. It enables us to modify a function signature in many ways: we can change the function name, change its visibility, add, remove and reorder parameters as well as rename parameters. (more…)…
Folding for imports in PhpStorm 6.0
In PhpStorm 6, we've introduced code folding for imports. Any list of imports will now be folded into a single line. This greatly reduced clutter in your editor when having a lot of imports! (more…)…
Drag & Drop Project Files to Remote Hosts in PhpStorm
The Remote Host pane allows us to work directly on a remote server through FTP, FTPS, SFTP or a local/network folder. A lot of people asked us to add drag & drop to the Remote Host pane in PhpStorm. Good news: PhpStorm 6 comes with drag & drop as well as copy & paste support from the pro…