IntelliJ IDEA 2019.1 Help

Drupal

You can use IntelliJ IDEA as an IDE for Drupal development including modules, themes, and core. The supported versions are 6, 7, and 8.

IntelliJ IDEA provides integration between the Symfony2 and Drupal 8 while developing Drupal modules and core.

Before you start

Install and enable the PHP and Drupal Support repository plugins on the Plugins page as described in Managing plugins.

Downloading and installing Drupal

Download Drupal from the Drupal Official website and install it as described in the Drupal installation instructions.

Setting up a Drupal project in IntelliJ IDEA

Option 1: Create a IntelliJ IDEA project with a Drupal module

You can create a IntelliJ IDEA project by a Drupal Module template, this project will be set up and configured in accordance with the Drupal requirements.

IntelliJ IDEA generates and configured a project stub in accordance with the selected Drupal version. For Drupal 8, a module_name.info.yml file is generated.

  1. Open the New Project dialog

    Choose File | New | Project or click Create New Project on the Welcome screen.

  2. Choose the project type and location

    In the left-hand pane, click PHP from the list, then choose Drupal Module in the right-hand pane, and then click Next.

    On the second page of the wizard, specify the project name and the folder where it will be created.

  3. Choose Drupal installation to use

    Specify the root folder of the Drupal installation and choose the version of Drupal to use, the supported versions are 6, 7, and 8.

    Later you can change the Drupal installation and re-configure the include paths on the Frameworks page as described in Changing the Drupal settings

  4. Configure Include paths

    Select the Set up PHP | Include paths checkbox to have Drupal include paths automatically configured for the project. After you leave the dialog, the following paths will be added to the Include Paths list on the PHP page: <drupal installation root>/includes, <drupal installation root>/modules, and <drupal installation root>/sites/all/modules

Option 2: Import an existing Drupal module

When you open an existing Drupal module, IntelliJ IDEA recognizes the Drupal-specific structure and suggests activating the Drupal support.

  1. Open your project

    Click Open on the Welcome screen or choose File | Open from the main menu, then choose the folder where your Drupal module is stored.

    IntelliJ IDEA detects a Drupal-specific structure and shows a notification:

    drupalStructureDetected.png
  2. Enable Drupal support

    Click Enable in the notification. In the Drupal Module dialog that opens, select the Enable Drupal integration checkbox and proceed as when creating a project with a Drupal module: specify the root folder of the Drupal installation, choose the version to use, and configure include paths.

Whether you enable the Drupal support in an existing IntelliJ IDEA project or create a new project with a Drupal module, IntelliJ IDEA checks if the development environment is configured properly for Drupal development.

Any detected inconsistency is reported in the Event Log tool window and as a popup For each discrepancy IntelliJ IDEA suggests a fix. To apply a suggestion, click the link next to the reported event.

Drupal Event Log

Associating Drupal-specific files with the PHP file type

IntelliJ IDEA recognizes and treats files as php files and provides code highlighting based on file type associations.

Option 1: Use the Event log

  • In the Event Log tool window, click Fix next to the Drupal support: <*.file extension> files are not associated with PHP file type message.

Option 2: Use the File Types page

  • In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to Editor | File Types.

    On the File Types page that opens, define file masks in the Registered Patterns area. See Set file type associations for details.

Changing the Drupal settings

Option 1: Enable or disable Drupal integration

  • In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to Languages and Frameworks | PHP | Frameworks. On the Frameworks page that opens, toggle the Enable Drupal integration checkbox to activate or deactivate Drupal in the current IntelliJ IDEA project.
    To use another Drupal installation, type the path to the relevant installation folder. Change the version if necessary.

Option 2: Update the include paths

  • In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to Languages and Frameworks | PHP.

    On the PHP page that opens, make the required changes in the Include Paths area.

Using Drupal hooks in IntelliJ IDEA

IntelliJ IDEA provides full native support of Drupal hooks in .module files.

  • Use code completion for hook declarations

    IntelliJ IDEA indexes any hook invocation whereupon hook names become available in code completion for creating hook implementations. To complete a declaration, start typing the hook name and press Ctrl+Space.

    Drupal Hook Name Completion
  • Navigate to hook invocations
    • To navigate to a hook invocation from the editor, click the icon in the gutter.

    • In case of multiple invocations, IntelliJ IDEA displays a list of available hook invocations so you can choose which one to jump to.

      Choose Hook invocation

      You will be navigated to the line where the relevant hook is invoked with module_invoke_all(), module_invoke(), or drupal_alter().

  • View hook documentation

    Position the cursor at the name of the hook and choose View | Quick Documentation Lookup or press Ctrl+Q.

Setting up Drupal code style in a IntelliJ IDEA project

IntelliJ IDEA 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 Drupal Module. However, you can at any time change or customize this setting on the Code Style: PHP page of the Settings dialog.

Use the pre-configured Drupal code style in a project

  • In the Event Log tool window, click Set next to the Drupal-style formatting can be set for this project message.

You can also set the predefined code style on the Code Style: PHP page. In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to Editor | Code Style | PHP. Then, click Set from and choose Predefined | Drupal.

If applicable, customize the code style using the controls on the page.

Checking code against the Drupal coding standards

With IntelliJ IDEA, you can use the PHP Code Sniffer tool, which detects coding standard issues, in combination with Coder, which provides a set of Drupal-specific standards to PHP Code Sniffer. This will ensure that your code is clean, consistent, and free of some common errors.

To get started, install PHP Code Sniffer using any technique described in Installing and configuring PHP Code Sniffer. Probably the easiest way is to install it with Composer.

Install PHP Code Sniffer

  1. From the context menu of composer.json, choose Composer | Manage Dependencies. Alternatively choose Tools | Composer | Manage Dependencies from the main menu.

  2. In the Manage Composer Dependencies Dialog that opens, select the squizlabs/php_codesniffer package from the Available Packages list, possibly using the search field.

    Choose the relevant version from the Version to install list.

  3. If necessary, expand the Settings hidden area and specify the advanced installation options. In the Command line parameters field, type the additional command line parameters. It is recommended to provide the --dev, option: the package in this case is added to the require-dev section of the composer.json file instead of the default require section.

  4. Click Install.

Next, install Coder, which will provide Drupal-specific standards to PHP Code Sniffer.

Install Coder

  1. From the context menu of composer.json, choose Composer | Manage Dependencies. Alternatively choose Tools | Composer | Manage Dependencies from the main menu.

  2. In the Manage Composer Dependencies Dialog that opens, select the drupal/coder package from the Available Packages list, possibly using the search field.

    Choose the relevant version from the Version to install list.

  3. If necessary, expand the Settings hidden area and specify the advanced installation options. In the Command line parameters field, type the additional command line parameters. It is recommended to provide the --dev, option: the package in this case is added to the require-dev section of the composer.json file instead of the default require section.

  4. Click Install.

The Coder package will be installed, and the corresponding Drupal standard will be selected for the PHP Code Sniffer validation inspection automatically. If necessary, you can further customize the inspection on the Editor | Inspections page of the Settings/Preferences dialog (Ctrl+Alt+S). See Configuring PHP Code Sniffer as a IntelliJ IDEA inspection for details.

Viewing the Drupal API documentation from IntelliJ IDEA

In the IntelliJ IDEA editor, select the symbol you are interested in and choose Search in Drupal API from the context menu. The Drupal API Documentation opens.

Using the Drush command line tool from IntelliJ IDEA

  1. Download and install Drush as described at https://github.com/drush-ops/drush.

  2. Configure Drush as a command line tool
    • In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to Tools | Command Line Tool Support.

    • On the Command Line Tool Support page that opens, specify the tool type and visibility. Click Add and choose Drush in the Choose Tool to Add dialog. Choose whether Drush will be available in the current project (Project visibility or across all IntelliJ IDEA projects (Global visibility). When you click OK, the Drush dialog opens.

    • Specify the Drush executable.

      In the Drush dialog that opens, IntelliJ IDEA has automatically filled in the default executable location, which is usually C:/ProgramData/Drush/drush.bat on Windows and /usr/bin/drush on macOS or Linux. If you followed the standard installation procedure, the predefined path will be correct, just click OK.

      In case of custom installation, type the path to the Drush executable file and click OK.

      In either case, IntelliJ IDEA loads command definitions automatically and returns to the Command Line Tool Support page.

    • Specify the alias for Drush.

      In the Alias field, specify the alias to use in calls of tool commands. Accept the default alias or edit it, if necessary.

    • Activate Drush

      Select the Enable checkbox to activate the detected command set.

  3. Run Drush commands

    Open the Input pane (Tools | Run Command) and type <alias> (drush by default) and press Ctrl+Space to invoke completion. The command execution result is displayed in the Output tab with the name of the command. Learn more from How do I run a command?.

Using Drupal 8 with Symfony2

IntelliJ IDEA provides close integration between Drupal, version 8, and Symfony2. Through this integration, Symfony2 components are connected with Drupal infrastructure. To take advantage of this integration:

  1. Install the Drupal Symfony2 Bridge plugin

    In the Settings/Preferences dialog (Ctrl+Alt+S), navigate to the Plugins page. Click Browse Repositories, select the plugins and click Install. For details, see Managing plugins.

  2. Enable annotations

    To get advanced annotations support, install the PHP Annotations plugin as described inManaging plugins.

What coding assistance for Drupal 8 - Symfony2 integration is available?

  • Completion for major Drupal-specific parameters in <module_name>.info.yml files 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 yml key values in url() and other Drupal API functions, which makes search for the right value easier.

  • Navigation to the yml file by pressing Ctrl+B or choosing Navigate | Go To Declaration.

  • Full support for service containers described in yml files, 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.

Last modified: 5 June 2019

See Also

Reference: