Symfony2 Plugin

Products: IntelliJ IDEA, PhpStorm

Vendor: Daniel Espendiller



Source code:


Symfony2 plugin. Documentation | Doc on GitHub | Donate
  • Activate plugin per project in "Settings -> Plugins" and reopen project
  • (Optional) Install PHP Annotations
Open Api Issues
  • Twig block name completion "{% block foo %}" WI-24362
  • Bug for all php types on clean cache WI-23727; our issue #287: doctrine repository+entity, twig, ...
Features: 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: 1331019
Participated in rating: 37
Version Compatible builds Date
0.11.103 138 23.11.2015 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
133 updates are hidden show all updates
Screenshot #14562
Screenshot #14584
Screenshot #14332
Screenshot #14172
Screenshot #14167
Screenshot #14511
Screenshot #14954
Screenshot #14173
Screenshot #14191
Screenshot #14987
Screenshot #14190
Screenshot #14166

Recent change notes

0.11.x: PhpStorm 8
0.10.x: PhpStorm 7 (no support)
0.9.x: PhpStorm 6 (no support)

  • 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
  • Remove postfix completion because its a PhpStorm9 core feature #389
  • Improvement template name resolving for overwrites: support parent bundle and app resources; overwrite template linemarker #437
  • Add Travis CI infrastructure thx to @Sorien #536, #534
  • Whitelist Twig_Environment parameter completion for template name
  • Add "kernel.event_subscriber" to known tags and provide some more user feedback in error case #511
  • Add _self support for twig macros #419
  • Fix newline issue in controller template #509
  • Add project generator for symfony installer and demo application #475
  • Optimize service name generator and provide custom javascript strategy for it #362
  • Add navigation form options of setRequired, setOptional, setDefined and refactor form options to visitor strategy #502
  • Remove double Controller in classname #507
  • Optimize form ui handling of service generator, prepare "insert" button, add generator action #362
  • Use ContainerAwareCommand for command template
  • Add support for doctrine xml metadata #319
  • Add support for conditional twig extends tags, and replace regular match with pattern style
  • Provide twig completion for html form action attribute #497
  • Twig template file create quickfix should use PsiManager to support eg vcs #498
  • Support for query_builder in entity form field type #426
  • Fix npe in doctrine querybuilder chain processor #495
  • Fix multiple resolve issues in php type provider
  • Add CompilerPass intention and generator action for Bundle context #484
  • Add support for new configureOptions in replacement for deprecated setDefaultOptions #491, #486, #490
  • Add more bundle related file templates in NewGroup
  • Fix "Missing argument" in services.yml doesn't keep track of factory methods #492
  • Add yaml service arguments and tags intention / quickfixes #470
  • Add xml tag intention and reuse tagged class interface list also for service generator #470
  • Add method psi collector to support parent methods of a command #454
  • Overall "Controllers as Services" optimize like navigation, related files, ... #428
  • Use more stable PsiElements to find twig trans_default_domain domain name instead of regular expressions #476
  • Fix multiResolve issue in method instance checks to resolve issue #477 in multiple project command classes
  • Fix wrong inspection for FormTypeExtensions tags #483
  • Fix npe in index route arguments #482
  • Fix warning for optional xml arguments #485
  • Add console "getArgument" and "getOption" references #454
  • "%" char in xml arguments now is a valid completion event #461
  • Initial "Missing Argument" xml service inspection and quickfix #470
  • Some performance improvements in xml and yaml service resolving
  • Add completion for twig tags of Twig_TokenParserInterface::getTag implementations #457
  • Add trans / transchoice twig tag 'from' support #459
  • Add completion for Twig_SimpleTest extension in twig files after IS token
  • Add twig operator completion in IF tags
  • Fix pattern of twig trans_default_domain tag and use translation index for domain completion
  • Fix several issues in twig array completion #463

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