Symfony Plugin

Products: IntelliJ IDEA, PhpStorm

Vendor: Daniel Espendiller

Email:

Website: https://github.com/Haehn...idea-php-symfony2-plugin

Source code: https://github.com/Haehn...idea-php-symfony2-plugin

License: https://github.com/Haehn...ugin/blob/master/LICENSE

Symfony Plugin Documentation | Doc on GitHub | Donate
Install
  • Activate plugin per project in "File -> Settings -> Languages & Framework -> 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
Doctrine
  • 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
Templates/Twig
  • 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
Forms
  • References for form types
  • Form field name references on data_class
  • References for form options, extension, ...
Routing
  • 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
Other
  • 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: 1618168
Rating:
Participated in rating: 37
Version Compatible builds Date
0.12.121 145 + 12.06.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
152 updates are hidden show all updates
Screenshot #14191
Screenshot #14190
Screenshot #14562
Screenshot #14584
Screenshot #14173
Screenshot #14172
Screenshot #14167
Screenshot #14166
Screenshot #14987
Screenshot #14954
Screenshot #14511
Screenshot #14332

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)

0.12.121
  • 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
0.12.120
  • 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

0.12.119
  • 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
0.12.118
  • 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
0.12.117
  • 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
0.12.116
  • 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
0.11.114
  • 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
0.11.113
  • 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
0.11.112
  • Extracting webDeployment plugin deps into external file, this resolves crashes for disabled "Remote Hosts Access" plugin #686
0.11.111
  • 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
0.11.110
  • 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
0.11.109
  • 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
0.11.108
  • 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
0.11.107
  • 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
0.11.106
  • 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
0.11.105
  • 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 symfony.com 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
0.11.104
  • 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
0.11.103
  • 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
0.11.102
  • 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
0.11.101
  • 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
0.11.100
  • 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 http://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program

Comments:

123>
scaytrase
Rated:
2015-07-09 14:35:52
.
Anonymous
Rated:
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
.
Anonymous
Rated:
2014-11-06 19:04:23
Superb. Second place in plugin top 10 downloads!!! Keep it up!
.
Anonymous
2014-10-06 14:23:24
A+ Plugin Keep upgrading it!
.
shairyar
Rated:
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/
.
Anonymous
Rated:
2014-08-13 12:04:32
This plugin is so awesome! Thank you for this great tool :)
.
Anonymous
Rated:
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 :)
.
tehasystems
Rated:
2014-06-01 16:09:52
Excellent plugin! And it keeps getting better and better!
.
Anonymous
Rated:
2014-04-15 01:31:14
.
t0xicCode
Rated:
2014-04-03 22:31:11
.
Anonymous
Rated:
2014-03-09 14:33:12
this is the best plugin for symfony2 ever seen
.
Anonymous
Rated:
2013-12-19 14:53:53
Thanks a lot!!!
.
Anonymous
Rated:
2013-10-29 15:53:07
This is absolutely awesome. Changed my life!
.
Anonymous
2013-09-27 14:18:53
How to remove the service icon?
.
Anonymous
Rated:
2013-09-17 16:29:34
Can you provide example to run this plugin in php storm for php controller to view?
.
123>