PHP IDE with Intelligent Editor for Productive Coding
Intelligent PHP Editor
PhpStorm provides rich and intelligent code editor for PHP with syntax highlighting, extended code formatting configuration, on-the-fly error checking, and smart code completion.
PHP code completion
Automatic code completion (invoked on typing) finalizes classes, methods, variable names, and PHP keywords, plus commonly used names for fields and variables depending on their type.

Code completion supports array indexes in PHP code.

PHPDoc support

PhpStorm editor respects PHPDoc in your code and provides appropriate code completion suggestions based on @property, @method and @var annotations.
When you edit PHPDoc for your code, variable names and types are auto-completed from the corresponding code blocks.
PHP code refactorings also consider PHPDocs to keep them up to date.
Smart Duplicated Code Detector
Added for all major supported languages including even CSS and HTML. Go to Code|Locate Duplicates to start your quest against copy/paste coding. You'll be presented with a list of candidates for refactoring — and with the help of Refactor | Extract Method it's easy to keep your code DRY.
PHP refactoring
The Rename refactoring works for files, functions, constants, classes, properties, methods, parameters, and local and global variables.
Also following refactorings are available:
- Introduce Variable
- Introduce Constant
- Introduce Field
- Inline variable
Make global project changes easily and safely. Local changes are made instantly in-place.
Smarty templates editing
With the PhpStorm IDE, you can use the Smarty template engine and take advantage of these productivity features when working with .tpl files:
- configurable syntax highlighting for keywords, strings, variables and braces
- syntax errors highlighting
- Smarty functions and attributes completion
- automatic insertion of paired braces, quotes and closing tags
- commenting of the selected block with a single hotkey
- custom Smarty delimiters support

More on Smarty support in PhpStorm.
Efficient project analysis and navigation
Its thorough source code analysis allows PhpStorm to provide sophisticated code completion even for unannotated code, for example:
- the function return type is deducted from its body and return statements
- class property types (and declarations) are extracted from the constructor code
File structure view and class, method and call hierarchy views allow for faster code review and navigation.
More on Hierarchy View in our blog: Hierarchies view support for PHP & Hierarchy View actions
Visual PHP Debugger
PhpStorm provides numerous options for debugging your PHP code, so you can:
- Inspect context-relevant local variables and user-defined watches, including arrays and complex objects, and edit values on the fly.
- Setup remote debugging for your server.
- Evaluate an expression in runtime.
- Debug a page in multiple sessions simultaneously.
- Keep a debugging session alive while moving between pages.
You can use our browser bookmarklets, Zend Toolbar or XDebug toolbar to initiate debugging directly from any page in a modern browser such as Firefox, IE, Google Chrome or Safari.
Read more about zero-configuration debugging with PhpStorm.
And when (in some cases) you still need to configure debugging manually read this article: How to configure debugging in PhpStorm
Watch our video on how to configure remote debugging:
Profiler integration
You can profile your scripts right from PHPStorm with either xDebug and Zend Debugger. You can see an aggregate report and jump from the execution statistics directly to the function in your PHP code.
Smart Environment
PHP UML
PhpStorm helps developers to understand and change their code by providing editable UML class diagrams for PHP code. You can quickly examine your application structure, create and edit classes and their relationships. Look for "Diagrams..." in context menus. Many refactorings can be applied directly from the diagram, via the shortcut menu.
Note that a diagram built from a source control change list or history provides a semantic view of changes - added classes, changed hierarchy, and changed properties.
Version control systems integration
PhpStorm supports most popular Version Control Systems:
- Subversion
- Mercurial
- Git
- Perforce
- CVS
- TFS
All the tedious tasks (adding, removing, deleting files) are performed automatically. A built-in visual merge tool resolves all conflicts in a quick and intuitive manner. The changes made locally are highlighted as you type in the editor gutter, providing intuitive navigation and a 2-click rollback for individual changes.

For Git VCS IDE shows revisions graph.

The following features are available no matter which VCS you use:
- Integrated changelists — group your changes into multiple change lists for better organization
- Shelved changes — set aside some changes to restore them later
- Repository changes view — see what has been committed by other team members
- UML view of changes — see UML section
- Incoming changes view — see the code changes not yet integrated into your local copy
- Outdated changes notification — get warned that a file you are working with has been changed after your last sync
Local history
PhpStorm tracks any changes made to your source files, protecting you from any accidental losses or modifications, even if made by other applications. At any time, you can inspect the history of either a particular file or directory and rollback to any of its previous versions. You can also set version labels.
Phing Support
PhpStorm automatically completes and checks standard tags, properties, target names, path attribute values in build files:
PHPUnit — testing without interruptions
Develop PHPUnit tests in PhpStorm and run them instantly from a directory, file or class using the context menu options.
Dedicated Run/Debug configurations allow you to run the appropriate set of tests at a later time.
Tests are executed in a dedicated Test Runner UI, displaying results overview and detailed stats for the whole suite and every particular test.
If a test fails, you can instantly jump from the stacktrace to the line of code where the error occurred.
More on using PhpUnit with PhpStorm.
Advanced JavaScript Editor
DOM-Based, browser-specific completion
JavaScript code completion for keywords, labels, variables, parameters and functions is DOM-based and supports popular browsers' specifics (IE, Firefox, etc.) Completion is available for both standard and user-defined functions in *.js files, HTML event handlers and everywhere else where appropriate.

Code navigation and usages search
- Go to declaration — navigates to where the function, variable or label in question is declared with a simple hotkey or Ctrl+Click⌘Click.
- Go to symbol — navigates to any symbol in project code using search patterns, including asterisk (*) and/or CamelHump abbreviations.
- Find/Highlight Usages — locates other places in your entire project where a JavaScript symbol, label or file is used, with quick preview and instant navigation to the actual usages.
JavaScript refactoring
Refactoring capabilities provided for JavaScript allow you to easily modify the code structure as well as undo the modifications. Some refactorings available for JavaScript code and *.js files are:
- Rename
- Extract Variable/Function
- Inline Variable/Function
- Move/Copy
- Safe Delete
- Extract embedded script into file
JavaScript debugger
With JetBrains PhpStorm you can debug JavaScript code utilizing the complete range of features:
- Breakpoints in HTML and JavaScript
- Customizable breakpoint properties: suspend mode, conditions, pass count and more
- Frames, variables and watches views in JavaScript debugger UI
- Runtime evaluation of JavaScript expressions

More on JavaScript Editor features.
JavaScript Unit Testing
Supported by plugin.
Advanced HTML/XHTML/CSS Editor
DOM- and schema-based code completion
Based on its deep knowledge of HTML/XHTML and XML code, PhpStorm is capable of completing:

- styles
- file references
- tag names
- closing tags
- attributes
In CSS, code completion works for:
- keywords
- values
- properties
- classes
- HTML IDs


Try Ctrl+Space⌃Space at any place in your code and reap the rewards.
Validation and quick-fixes
PhpStorm detects and suggests auto-fixes for such problems as:
- missing required attributes
- invalid attributes or illegal values
- wrong references to files in links
- duplicate attributes
- invalid CSS selector format
- invalid CSS properties
- unused CSS class definitions
- invalid local anchors and more...

Show content
Quick Definition Lookup(Ctrl+Shift+I⌘⇧I) on a CSS ID immediately shows a popup displaying the actual styles defined for this particular ID:

Quick Definition Lookup on a CSS ID immediately shows a popup displaying the actual styles defined for this particular ID. When invoking it on an image file reference, you will see an image preview.
This works both in code and in completions lists.

Show applied styles
Not sure where the styles come from for a particular tag in your page? Right-click it and choose Show Applied Styles for Tag.
This command opens a tree-view of all styles that are applied to the tag by CSS, with all possible overrides.

More on HTML/XHTML/CSS Editor features.
Lightweight IDE
Open code from anywhere and start working in no time
Open an existing folder, check out the code from a VCS, or even specify your FTP to download and auto-sync your files with. You're up and running in mere moments.
Edit project files locally and deploy back to remote server using automatic synchronization, either on file save or on demand.
Web resource folders are quickly configured via Settings|Directories — note the "Resource Root" marker button. Just mark your JS/CSS/other folders to get proper completion and code analysis.
