Symfony Plugin

Products: IntelliJ IDEA, PhpStorm

Vendor: Daniel Espendiller



Source code:


Bugtracker page

Forum page

Symfony Plugin Documentation | Doc on GitHub | Donate
  • Activate plugin per project in "File -> Settings -> Languages & Framework -> PHP -> Symfony" or use auto configuration notification
  • (Optional) Configure a default project connection in "Remote Hosts Access / Remote Hosts" to enable support for remote files in plugin settings
  • (Optional) Ignore Symfony "cache" directory because of duplicate classes "Settings -> Project -> Directories"
  • (Optional) Install PHP Annotations
  • (Optional) Install PHP Toolbox
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: 1649608
Participated in rating: 37
Version Compatible builds Date
0.12.123 145 + 24.07.2016 Download
0.11.115 138 + 28.03.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
154 updates are hidden show all updates
Screenshot #14173
Screenshot #14954
Screenshot #14190
Screenshot #14172
Screenshot #14166
Screenshot #14511
Screenshot #14562
Screenshot #14332
Screenshot #14191
Screenshot #14167
Screenshot #14584
Screenshot #14987

Recent change notes

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

  • Autocomplete service ids for ContainerBuilder::removeDefinition, removeAlias #761
  • Add service resolving for tool box provider and provide tests
  • Add doctrine dbal querybuilder "delete" references
  • Strip "\Bundle\" only namespaces in default service naming strategy
  • Fix route reference not showing in controller that is in a sub namespace on slashes #763
  • Add references for Twig blocks in embed tag #361, #513
  • Fix npe in xml parameter attribute values #766
  • Dialog of template creation dialog, translation key extractor, service generator should be relative to editor component
  • Made ServiceArgumentSelectionDialog closable on ESC #751 @kstenschke
  • Support trans_default_domain in embed #660
  • Let `trans_default_domain` autocomplete put quotes around domain #526
  • Fix Document block for EventSubscriber method creation in PhpStorm >= 2016.1 #745
  • Service generator should close on escape key event
  • Fix nullable condition on service container builder #754
  • Fix yaml does not autocomplete route host option #756
  • Settings for the plugin may be better placed inside the PHP group, like other frameworks #735
  • EAP: Fix nullable value index for container parameter #737
  • Fix possible memory leaks in settings because of project reference
  • Add navigation for yaml constant "!php/const:" syntax
  • Internally: Dropped all container service source, just one collection now
  • Add support for decorator inner services #510
  • Fix NPE exception in RouteHelper #750
  • Fix NullPointerException in FormFieldResolver #747
  • Add navigation for controller annotation #748
  • Service parent key completion should only be valid inside service scope #744
  • Don't report standalone yaml colon in mapping value @xabbuh #733
  • "request" service should only be visible inside supported Symfony version < 3.0
  • Inspection for deprecations should only be available with their corresponding Symfony versions #734
  • Drop IntelliJ platform api usage of CompletionProgressIndicator: "it's pretty private API, and current usages make it very hard to change things" #732
  • Add "shared" yaml completion for replacement of "scope" in Symfony 3.0
  • Yaml class autocompletion should only complete inside services for OroCRM plugin #728
  • Add Intellij 2016.1.2 and eap channel environment for travis testing
  • Fix equals / hashCode violation for eap channel and next PhpStorm release on all indexes and globally force a reindex #737
  • Migrate all indexes to object serializable objects
  • Add support for new autowiringTypes container property #699
  • Extend container tag name completion with index of findTaggedServiceIds #740; fix private tags are not autocompleted #216
  • Fix private services completed in PHP scope

  • Add extension points to allow service collecting for external plugins
  • Add extension point to locate service declaration in file
  • Move default services from static file to collector
  • Fixing npe in service generator intention #722
  • Implement lock for timer clear on caret listener #722
  • Add index to provide autocompletion for DIC parameters defined dynamically #478
  • Convert service name to lowercase in index and xml navigation should navigation to service name case insensitive
  • Add service container class name variants if definition not unique in project
  • Add @Event annotation indexer; provide completion, navigation, method type hint #493
  • Fix exception Accessing indexes from PhpTypeProvider2 while building indexes violates contract #670
  • Fix missing Yaml deprecation detection for colon in unquoted values #719
  • Add method type hint class importer for subscriber events #564
  • Dropping weak route name inspection, no need for this anymore
  • Refactoring route to use object serialization, add route method index and force reindexing #725
  • Add inspection for form types as name deprecation; includes a quickfix
  • Use popover for container tag suggestion
  • Add class name completion for service generator dialog
  • Service generator can now directly insert yaml services
  • Some yaml ascii char dont need to be escaped, fix inspection for them and reduce deprecated warning to weak notification #693
  • Migrate yaml argument creation and update callback to new lexer
  • Add service completion suggestion / highlights for service arguments
  • Migrate yaml routing controller navigation feature
  • Migrate yaml config completion
  • Migrate yaml sequence item usages, to fix wrong parameter resolving in call and arguments keys #710
  • PhpUse#getOriginal is deprecated, use #getFQN instead @artspb
  • Use yaml core utils to generate keys for translation, also support nested keys again #708, #711
0.11.115 / 0.12.115
  • Migrate our yaml features to new yaml plugin and support PhpStorm 2016.1 #626
  • Provide additional text for yaml route keys completion
  • Add quick fix for wrong service instance #566; Use popup overlay for suggestion
  • Respect formatting for generated service definitions #374
  • Activate xml service generator insert button
  • Add deprecated inspection for route and container settings in yaml and xml files
  • Add Symfony 2.8 / 3.1 YAML deprecations inspections #693, #601
  • Fix definition created by "Generate Symfony2 service" is invalid because yaml deprecations #638, #693
  • Reduce access of read thread in webDeployment jobs #694
  • Replace custom "instanceof" implementation with core isConvertibleFrom
  • Fixing yaml class instance checks for single quote strings
  • Increase testing coverage for mainly used yaml related features
  • Decouple all webDeployment dependencies to extensions points and make all related feature optional #688
  • Move remote container files parsing to main service factory, this simulates a local filesystem behavior
  • Move plugin settings under "Languages and Frameworks" section #690
  • Add Symfony 2 and 3 default routing paths to new implementation
  • Add service suggestion intention for yaml and xml container files
  • Provide service name suggestion quickfix for class instance check of xml and yaml container arguments
  • Add XLIFF 2.0 support #692
  • Add some more yaml service keys completion for newly added Symfony features
  • Extracting webDeployment plugin deps into external file, this resolves crashes for disabled "Remote Hosts Access" plugin #686
  • Add twig variable type inspection
  • Add translation support for .xliff extension #684
  • Add support for multiple routes; deprecates single usage #138
  • Add controller test template #584
  • Add inspection for deprecated twig variable usage; last level only
  • Migrate all local inspections to return visitor to improve performance and prevent multiple runs
  • Experimental: Add support for webDeployment plugin (Remote Host); supports external container and routing files on a "Default Server"
  • Experimental: Extend "Remote Host" context menu with action to download configured remote files
  • Experimental: Background task to download external files
  • Add controller provider for PHP Toolbox
  • Add description to PhpTyes @var syntax and allow multiline doc comments #439
  • Add @see doc tag support for twig. supports: relative files, controller names, twig files, classes and methods syntax #439
  • Add Symfony 3 controller getParameter shortcut support; migrate container getParameter registrar for supporting all proxy methods and navigation #680
  • Create template for controller action on annotation should prioritize html files #681
  • Migrate template create annotator to twig namespaces handling to not only support bundle files
  • Add twig namespace extension point and provide json file for twig namespace configuration "ide-twig.json" see "Twig Settings" for example
  • 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

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?