Drupal-Specific Coding Assistance
On this page:
- Using Drupal Hooks In PhpStorm
- Setting the Drupal Code Style in a Project
- Checking Code against the Drupal Coding Standards
- Viewing Drupal API Documentation from PhpStorm
- Using the Drush command line tool
- Integration between Drupal 8 and Symfony2
Using Drupal Hooks In PhpStorm
PhpStorm provides full native support of Drupal hooks
Completing Hook Declarations
PhpStorm indexes any hook invocation whereupon hook names become available in code completion for creating hook implementations. Start typing a hook name and press Ctrl+Space.
Navigating to a Hook Invocation from the Rditor
- To navigate to a hook invocation from the editor, click the icon in the gutter.
In case of multiple invocations, PhpStorm displays a list of available hook invocations so you can choose which one to navigate to.
You will be navigated to the line where the relevant hook is invoked with
Quick Documentation Look-Up for Hooks
You can view quick documentation for a Drupal hook in PhpStorm.
Documentation is taken from
core and many other modules for reference purposes.
To view documentation on a hook, position the cursor at the hook name in question and chooseor press Ctrl+Q.
Setting the Drupal Code Style in a Project
PhpStorm automatically offers to apply the pre-configured Drupal Coding Standards (code style) if a project is recognized as a Drupal Module, or if the Drupal integration is enabled in an existing project, or when you create a new project with a a Drupal Module. However, you can at any time change or customize this setting on the Code Style: PHP page of the Settings dialog box.
To have the pre-configured Drupal code style applied to a project, do one of the following:
In the Event Log tool window, click the Set link next to the
Drupal-style formatting can be set for this projectmessage.
Use the Code Style: PHP page of the Settings dialog box:
- Open the Settings dialog box by choosing on the main menu, click Code Style, and then click PHP.
- On the Code Style: PHP page that opens, click the Set from link.
- On the pop-up menu, choose Predefined, then choose Drupal.
Checking Code against the Drupal Coding Standards
With PhpStorm, you can use two tools that detect violations against the Drupal coding standard: Coder and PHP Code Sniffer. They ensure your code remains clean and consistent and help prevent some common semantic errors made by developers.
- To use PHP Code Sniffer:
To use Coder, the native Drupal code quality tool:
- Download the Drupal Coder module (7x-2.0 version is recommended). You don't need to install or use the Drupal Coder module, it contains the Drupal Coding Standards inside.
Unpack the downloaded archive and find the
coder_sniffer/Drupalsubdirectory inside. You need to move the contents of this directory to
<php installation folder>/CodeSniffer/Standards/Drupal. This directory must contain the
ruleset.xmlfile and some other subdirectories.
Viewing Drupal API Documentation from PhpStorm
To reach the Drupal API Documentation at https://api.drupal.org/api/drupal right from PhpStorm, select the symbol you are interested in and choose on the context menu of the selection.
Using the Drush command line tool
Drush is a command line shell and scripting interface for Drupal. With PhpStorm, you can use Drush 5.8 and higher.
- Download and install Drush as described at https://github.com/drush-ops/drush.
Integrate Drush with PhpStorm by configuring it a s Command Line Tool:
- Open the Settings dialog box and click Command Line Tool Support.
- On the Command Line Tool Support page, click the Add button. In the Choose Tool to Add dialog box that opens, choose Drush and specify the tool's visibility. The available options are Project (available only in the current project) and Global (available across all PhpStorm projects). Click OK.
In the Drush dialog bo that opes, specify the path to the Drush executable file.
PhpStorm automatically fills in the default location, which is usually
C:/ProgramData/Drush/drush.baton Windows and
/usr/bin/drushon Mac OS or Linux. If you followed the standard installation procedure, the predefined path will be correct, just click OK, whereupon PhpStorm loads command definitions automatically and returns to the Command Line Tool Support page.
- In the Alias text box, specify the alias to use in calls of tool commands. Accept the default alias or edit it, if necessary.
- To activate the detected command set, select the Enable check box.
- To run a Drush command, choose on the main menu or press Ctrl+Shift+X (Cmd-Shift-X on OS X).Ctrl+Shift+X (Cmd-Shift-X on OS X).
For details about configuring and running command line tools in PhpStorm, see Using Command Line Tools.
Integration between Drupal 8 and Symfony2
PhpStorm provides close integration between Drupal, version 8 and Symfony2 which connects Symfony2 components and Drupal infrastructure. To take advantage from this integration:
Install and activate the Drupal Symfony2 Bridge plugin
on the Plugins page of the Settings dialog box as described in Installing, Updating and Uninstalling Repository Plugins
and in Enabling and Disabling Plugins.
The Drupal Symfony2 Bridge plugin depends on the Symfony2, which will be installed automatically.
- To get advanced annotations support, install the PHP Annotations plugin as described in Installing, Updating and Uninstalling Repository Plugins and in Enabling and Disabling Plugins.
Coding Assistance for Drupal8 - Symfony2 Integration
Completion for major Drupal-specific parameters in
<module_name>.info.ymlfiles that contain information about Drupal modules.
- Strings suitable for use inside Drupal-specific t() function are indexed across your project and offered for completion.
Completion for relevant
.ymlkey values in url() and other Drupal API functions, which makes search for the right value easier.
Navigation to the
.ymlfile by pressing Ctrl+B or choosing .
Full support for service containers described in
.ymlfiles, including completion and navigation with Ctrl+B.
- Support of the Twig template engine, which is now the default template engine for Drupal 8, including completion, navigation, and recognition of Drupal functions. See also Twig in Drupal 8.