WordPress Support in PhpStorm 8 EAP

wordpress-logo-stacked-rgbWe are glad to announce availability of WordPress plugin (providing a bunch of WordPress-specific features) bundled with PhpStorm from yesterday’s PhpStorm 8 EAP 136.1255, you can download and test it right now.

Please refer to a full tutorial on WordPress Development using PhpStorm to get an insight on how to get started with new features.

Current WordPress support includes:

  • WordPress integration in PhpStorm for new plugins (with plugin skeleton) and existing projects
  • Development environment configuration for WordPress
  • WordPress code style
  • Hooks support (Including completion for registration functions parameters, navigation from hook registration functions to hook invocation, callbacks from hook registration, and other hooks-related features)
  • Search on WordPress.org right from the editor
  • WordPress command line tool WP-CLI integration

Enabling WordPress Integration in an Existing PhpStorm Project, or Creating a New WordPress Plugin

Enabling WordPress Integration in an Existing PhpStorm Project

When the project you’re working on is recognized as a WordPress Plugin, you will be offered to enable support for WordPress automatically.

You need to provide WordPress Installation Path (root folder of your WordPress Installation, directory should contain wp-admin and wp-includes subdirectories).

wordpress_tutorial_enable_integration_dialog

Creating a New WordPress Plugin

A new WordPress plugin can be created from the Welcome screen or by selecting File | New Project. Project type should be set to WordPress Plugin. After clicking OK you need to provide WordPress Installation Path.

wordpress_tutorual_new_project_plugin

Initial plugin file in the project will be created automatically (plugin-name.php with proper meta information skeleton).

wordpress_tutorial_new_project_structure

Development Environment Configuration

Whether you enable WordPress integration in an existing PhpStorm project or create a new WordPress plugin, the IDE checks if the development environment is configured properly for WordPress development. If the configuration does not meet the requirements, pop-ups with a fix suggestion will appear, as well as events in the Event Log.

wordpress_tutorial_enable_integration_event_log

Following development environment configuration help is provided by PhpStorm with WordPress Support:

  • Include Path Configuration (wp-content folder and/or plugin you are working on are OUTSIDE of WordPress installation)
  • Content Root Configuration (wp-content folder and plugin you are working on are INSIDE WordPress installation)
  • WordPress Code Style (Code Style can always be re-configured in Settings | Code Style | PHP. WordPress-specific code style can be applied with Set from… | Predefined Style | WordPress)

WordPress Hooks Support

Completion for WordPress Action and Filter functions parameters (hooks completion)

Any hooks declared in WordPress core and included plugins are indexed by the IDE, and hook names become available in code completion with Ctrl+Space for standard action and filter functions parameters (add_action and add_filter).

wordpress_tutorial_hook_completion

Navigation from Action and Filter functions (hook registration) to hook invocation

From WordPress hook registration (with add_action and add_filter functions) you can navigate to hook invocations with a navigate icon on the editor gutter:  wordpress_tutorial_navigation_sign_new

wordpress_tutorial_hook_invokation_nav

Callbacks from Hook Registration

Going to declaration of function/method specified as the second parameter of actions/filters hook registration functions (add_action and add_filter) can be performed with Ctrl+Click (CMD-Click on Mac OS X) or Ctrl+B (CMD-B on Mac OS X).

wordpress_tutorial_goto_declaration

Navigate to Symbol… for Hooks

With Navigate | Symbol… (Ctrl+Alt+Shift+N on Windows/Linux, CMD-ALT-O on Mac OS X) you can search for hook invocations and easily navigate to them. Similar results can be achieved with Search Everywhere (Double-Shift).

wordpress_tutorial_goto_symbol_everywhere

There are more hooks-related features available, for example Find Usages.

WordPress Command Line Tool WP-CLI Integration

WP-CLI is a set of command-line tools for managing WordPress installations. You can update plugins, set up multisite installs and much more, without using a web browser.

We recommend installing WordPress Command Line Tool WP-CLI, either by following the official website instructions (via downloadable PHAR package) or with Composer right in PhpStorm (package wp-cli/wp-cli). Refer to this tutorial for more information about using Composer in PhpStorm.

wordpress_tutorial_wp_cli_run

Configuration of WP-CLI and many other features are described in detail in WordPress Development using PhpStorm tutorial.

Please browse through already known WordPress-related issues in our issue tracker.

Download latest PhpStorm 8 EAP for your platform from project EAP page and please report any bugs and feature request to our Issue Tracker.

Develop with pleasure!
-JetBrains PhpStorm Team

This entry was posted in Cool Feature, Early Access Program and tagged , , , , , . Bookmark the permalink.
  • http://elfet.ru Elfet

    Are you thinking to add support for Hack lang? http://hacklang.org/
    HHVM support it.

  • Lucas

    Do you plan to add support in PHPStorm 8 for Facebook’s HHVM and Hack language ?

  • Andrey

    How to turn off ‘auto-hide’ for scrollbars?! it’s quite annoying that scrollbars are hiding.

    • Andriy Bazanov
      • Andrey

        yep, OSX :( before there was not any problem with scrollbars. Right now its impossible to work :(

        • Andriy Bazanov

          The workaround is there — have you tried it?

          • Andrey

            i saw only ‘turn off at registry’. What’s registry at osx?

          • Andriy Bazanov

            Same as on Linux/Windows — it’s IDEA’s “hidden” settings (use Find Action to access it)

  • http://profiles.wordpress.org/mfisc/ Markus F

    Yay! I’m currently under your OSS Licence in PhpStorm but for this, I will buy a licence. :D Will try EAP tonight.

  • Pingback: PhpStorm 8 To Add Official Support for WordPress

  • http://danielx64.com Daniel

    I see that you are supporting wordpress plugins, will you support wordpress themes? That would be a huge plus for me (and others) I’m sure :-)

  • Pingback: PhpStorm 8 EAP, finally Support for WordPress! | PRTFL Jan Rajtoral

  • Alexander

    WordPress Code Style support is not full. It is impossible to apply such configuration:

    $x = $foo['bar']; // correct
    $x = $foo[ 'bar' ]; // incorrect

    $x = $foo[0]; // correct
    $x = $foo[ 0 ]; // incorrect

    $x = $foo[ $bar ]; // correct
    $x = $foo[$bar]; // incorrect

    • Mikhail Vink

      Please have a look at Spaces around variable/expression in brackets in Code Style->PHP->Other

      • Alexander

        Thanks, Mikhail. You are right!

  • e01

    I had an idea that may become totally awesome. Will be good if we had a option to sync settings between instances, I mean because I am using phpstorm at work, at my home pc and on my laptop, I should setup separately and maybe export and import settings, so every time when i just change one single setting i should export/import to other places. So if there is a some online setting sync like google’s chrome it will be nice, it can ofcourse just sync general settings because working with different projects, but may be and options which project settings to sync also.
    What do you think?

  • hurzeldihurzel

    Is there a release date for Phpstorm 8?

  • Greg

    Does phpstorm (and siblings pycharm, etc…) get all updates from Webstorm? I recently watched the video for the new angular js features in webstorm and would really like to see those in phpstorm / pycharm. Hopefully those updates make their way into these other apps?

    • Mikhail Vink

      Yes, most of WebStorm 8 features are already available in PhpStorm 8 EAP, some latest will be added to the next EAP.

  • Drew Hammond

    thank you based god

  • Bevis Larsen

    Now a days wordpress supported in php srorm 8 and its so amazing to work in it.

  • Fabio

    Does intellij 13 ultimate have the same support for wordpress? Or is this integration possibile on php storm?

    thanks

    Fabio

  • Mike B

    I turned on WordPress support, but now it thinks every simple php project is a wordpress plugin and asks me if I want to enable WordPress mode for this project? Why would it do that?

  • Pingback: PhpStorm 8 - New Features

  • Pingback: PhpStorm 8 Released With Full WordPress Support

  • Pingback: WPTavern: PhpStorm 8 Released With Full WordPress Support

  • Greg Hannan

    Is it possible to add the plugin template file as a new file inside an existing WP project?

    I’ve got a full project including the wp-admin, wp-content folders tec. and I just want to add a plugin to the plugins folder. There’s a plugin template file (which presumably will be updated if WP updates their requirements). Is it possible to add this file to the plugins folder easily?