Symfony Plugin

Products: IntelliJ IDEA, PhpStorm

Vendor: Daniel Espendiller



Source code:


Symfony Plugin Documentation | Doc on GitHub | Donate

NEWS: You should not switch to PhpStorm 11 EAP channel as long new Yaml Plugin lexer is not supported #626
  • Activate plugin per project in "Settings -> Plugins" or use auto configuration notification
  • (Optional) Install PHP Annotations
Open Api Issues
  • Bug for all php types on clean cache WI-23727; our issue #287: doctrine repository+entity, twig, ...
Features: Version

This plugin supports Symfony 2 and 3

Dependency Injection Container
  • References for services in ContainerInterface::get()
  • Detect ContainerInterface::get() result type
  • References for services, tags, events, methods, ... inside yaml, xml and php
  • Indexer to provide live editing without a compiled container
  • Tagged class indexer
  • ORM QueryBuilder support, including chaining and nested methods
  • References and TypeProvider for doctrine getRepository
  • TypeProvider for EntityRepository::find/findOneBy/findAll/findBy
  • Field and relations resolving and annotation and yaml
  • Template names in all file references
  • Provide Template implements and extends goto on linemarker
  • Assets file references like javascript, stylesheets and more
  • Support @Template annotations
  • Trans and transchoice support with annotator, quickquick and translation extraction action
  • References for block names (completion back since PhpStorm8)
  • Variable TypeProvider similar to php with several scopes and providers like docblocks, controller, actions, template inclusion, ...
  • Macro implements goto on linemarker
  • Filter, Function, Macro and Extension support
  • References for form types
  • Form field name references on data_class
  • References for form options, extension, ...
  • References for UrlGenerator::generate() related calls
  • Autocomplete route name in twig templates
  • Go to for routing name methods
  • CodeFolding to display real route uri instead of its name
  • Route parameter completion
  • Annotator which notice unknown route, template, service, assets, ...
  • Several stub indexer to provide some live generation provider in replacement for compiled container
  • Linemarker and "Related File" to provide possible goto targets and controller action
  • Search Everywhere support and custom search for only Symfony related Symbols "Navigate > Symfony Symbol"
  • Bridge for PHP Annotations to support annotation related stuff
Related Plugins Contributors
Downloads: 1421924
Participated in rating: 37
Version Compatible builds Date
0.11.109 138 + 31.01.2016 Download
0.10.77 130.1 + 09.11.2014 Download
0.9.26 129.713 + 26.10.2013 Download
0.9.6 129.196 + 17.06.2013 Download
139 updates are hidden show all updates
Screenshot #14191
Screenshot #14332
Screenshot #14562
Screenshot #14511
Screenshot #14954
Screenshot #14172
Screenshot #14584
Screenshot #14987
Screenshot #14190
Screenshot #14173
Screenshot #14167
Screenshot #14166

Recent change notes

0.12.x: PhpStorm 11 (upcoming)
0.11.x: PhpStorm 8, 9, 10
0.10.x: PhpStorm 7 (no support)
0.9.x: PhpStorm 6 (no support)

  • Fix autocomplete route name in php and twig not working since Symfony 2.8 #669
  • Implement more annotation controller route naming strategies #673
  • Add Doctrine model PHP Toolbox provider
  • Try to fix "unable to get stub builder", looks like input filter is true always in helper class #630, #617
  • Implement PHP Toolbox providers: services, parameter, routes, templates
  • Fix autocomplete and goto is missing for service ids in DefinitionDecorator #667
  • Implement twig block name completion workaround; need to strip block tag content on prefixmatcher #563, #390, #460, WI-24362
  • Update yaml service template to match Symfony best practices #657 @Ma27
  • Add array syntax whitelist for twig "trans" domain extraction and support "transchoice" variable in regex #662
  • Update travis test matrix dont allow Java8 and PhpStorm10 failing
  • Autowire services must not inspect constructor arguments #664
  • Synchronized clearing of CaretTextOverlayListener timer to prevent npe #642
  • "Method References" and "Type Provider" are deprecated by now and will replaced by Plugin PHP Toolbox
  • Check null before calling getFormTypeClassOnParameter in FormUtil #650
  • Support form getParent syntax of Symfony 2.8 / 3.0 #651
  • Dropping service alias "form.type" and "form.type_extension" form sources using interfaces instead
  • Add path support, class prefix routes and auto naming for route annotation indexer
  • Add new form extension visitor to reuse type visitor and support for nested ExtendedType form; resolves #623 #651
  • Plugin renaming "Symfony2" -> "Symfony"
  • Support yml inline service alias #628
  • Support form field types as class constants #623
  • Add FormType class constant completion and insert handler #623
  • Add form intention action and generator for replace string parameter with class constant #623
  • Parse branches level for symfony-installer version combobox; wait for next deployment #645 #643
  • Add a navigation going from the constraint class to its constraint validator and vice versa #632
  • Add Doctrine class constants intention replacement
  • Add class constants completion for Doctrine getRepository and intention
  • Controller::redirectToRoute should provide routing auto completion #614
  • Whitelist twig "set tag" for twig extension references #600
  • Dropping all version strings of "Symfony2", which are not system related
  • Add support for Symfony 2.8 and 3 using the new directory structure #635, also add auto configuration to set all custom paths and enabled plugin directly out of notification box
  • Twig controller method targets now recognize xml and json files to fix @Template annotation doesn't recognize non-html templates #602
  • Replace deprecated eap "PhpType#add" collection signature with string iteration #611, #622, #627
  • Globally provide references for xml "resources" attributes with Bundle and relative path syntax
  • All service definitions now indexed as json
  • Support service alias for weak services #391
  • Add deprecated service inspection #608
  • Migrate doctrine metadata index to json and fix npe state for indexer process #610
  • Support command names inside constant and property strings
  • Add autowire attribute to blacklist for service argument inspection #616 and add "autowire" and "deprecated" yaml completion
  • Add file resource index and add include line marker for routing definition
  • Use lazy line marker for class service definitions
  • Add route pattern/path provider for Symfony symbol search
  • Use route names of index for symbol search not only compiler provider
  • Secure doctrine metadata indexer for performance reasons #610
  • Support Doctrine embedded metadata for xml
  • Add field name references on class property for doctrine xml metadata
  • Add PhpStorm 10 testing environment
  • Double check to not add empty doctrine metadata class to index #615
  • Add class name scope for all metadata providers
  • Dont provide Doctrine metadata line marker for annotation classes as this results in self navigation #613
  • Improvements for completion and navigation of all Doctrine metadata files
  • Tag generator indention for yml files is accessible for all services now
  • Add new CaretListener extension which shows several type overlays for services
  • Add blank fix for empty doctrine repository index value #609
  • Complete rewrite of Doctrine implementation; metadata on now index #586
  • Support Doctrine ODM MongoDB and CouchDB #319
  • Add Doctrine relation shortcut for neos / flow annotations
  • Add some Doctrine dbal support on newly added metadata index #395
  • Add translator.logging parameter #606 @mhor
  • Dont display configurable forms inside default project #578, #607, #593
  • Fix empty types for all TypeProviders; eg getRepository of Doctrine
  • Support more use cases of TypeProvider
  • Improve support for Doctrine metadata in xml files #319
  • Add navigation for all yaml strings that are possible service names; eg security.yml ids
  • Add Doctrine repository linemarker
  • Full references support for console helpers #243
  • Add Doctrine couchdb support; merged into overall odm manager to reuse mongodb implementation
  • Doctrine getRepository now returns self instance on an unknown class
  • Fix plugin breaks the context menu in the Project view #575 thx @steinarer, #525
  • Recursively find bundle context for all related action
  • Class constant signature fixed in PhpStorm9; provide another workaround for supporting both api levels #541
  • Event dispatcher should return event class instance #570
  • Catch npe issue with plugin enabled check, for global twig navigation #574
  • Add "resource" file references for current directory scope #517
  • Add assets completion for "absolute_url" #550
  • Refactoring and fixing assets handling in PhpStorm9 #551
  • Fix invalid inspection on container expressions in yaml files and add LocalInspection testing asserts #585
  • Add Travis PhpStorm8, 9 and eap environment switches
  • Support priority and multiple registering of getSubscribedEvents in indexer
  • Provide service tag list on indexed services for service generator
  • Add twig filter and functions to symfony symbol search
  • Remove deprecated Symfony sidebar, use symbol search instead #414
  • Rename Symfony2 to Symfony in presentable strings #393
  • Support ternary and array syntax in twig "include" and "extends" tags
  • Route indexer saves nullable string value, catch them in Route constructor #482, #508
  • Remove "defaults" key detection for a valid yaml route id #518
  • Dont annotate missing twig template in interpolated or concatenated strings #488
  • Fix global twig name navigation in php files, because of some api changes #450, #456
  • Use CASE_INSENSITIVE_ORDER for service container #537
  • Add warning for service name if containing a uppercase char #537
  • Remove Nullable or empty key in PhpElementsUtil.getArrayKeyValueMap #549
  • Support "Class::class" in form data_class PHP 5.5 #523
  • Add Doctrine simple_array and json_array for yaml files, on direct interface parsing #555
  • Cache: Implement service definition cache layer, invalidates on global psi change #350
  • Cache: Implement twig template name cache on psi change invalidation
  • Cache: Refactoring TwigExtensionParser and introduce cache
  • Cache: Add metadata cache for routing component
  • Add PhpClass collector for "kernel.event_listener" events that are defined in xml and yaml #531
  • Collect type hints for methods of getSubscribedEvents #531, #529
  • Implement support of "kernel.event_listener" events in completion, navigation and method creation argument type hints

open full changelog

General usage instructions

Note that the plugin uses the app/cache/dev/appDevDebugProjectContainer.xml file to know services' class, so this file has to exists and/or be up to date :-) Also note that you need the latest PHPStorm EAP build, download at


2015-07-09 14:35:52
2015-03-06 16:27:05
Tu plugin find this kind of route : {% include 'AcmeBundle:Blog:create.html.twig' with { 'form': form } %} But not this one (which is in app/Resources/views) : {% extends "::base.html.twig" %} Except that, love the plugin
2014-11-06 19:04:23
Superb. Second place in plugin top 10 downloads!!! Keep it up!
2014-10-06 14:23:24
A+ Plugin Keep upgrading it!
2014-09-26 16:05:38
This is a wonderfull plugin, cant imagine working with Symfony without this plugin. It would be really nice to see auto complete in YML file and click to jump options as well/
2014-08-13 12:04:32
This plugin is so awesome! Thank you for this great tool :)
2014-07-16 19:46:48
great plugin !!! but missing option to jump into controller by clicking route inside yml routing file if you'll add it, it would be perfect :)
2014-06-01 16:09:52
Excellent plugin! And it keeps getting better and better!
2014-04-15 01:31:14
2014-04-03 22:31:11
2014-03-09 14:33:12
this is the best plugin for symfony2 ever seen
2013-12-19 14:53:53
Thanks a lot!!!
2013-10-29 15:53:07
This is absolutely awesome. Changed my life!
2013-09-27 14:18:53
How to remove the service icon?
2013-09-17 16:29:34
Can you provide example to run this plugin in php storm for php controller to view?