Categories


Symfony2 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

Symfony2 plugin. Documentation | Doc on GitHub | Donate
Install
  • 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
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: 1249051
Rating:
Participated in rating: 37
Version Compatible builds Date
0.11.96 138 23.08.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
126 updates are hidden show all updates
Screenshot #14172
Screenshot #14173
Screenshot #14191
Screenshot #14987
Screenshot #14190
Screenshot #14562
Screenshot #14584
Screenshot #14511
Screenshot #14954
Screenshot #14332
Screenshot #14167
Screenshot #14166

Recent change notes

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

0.11.96
  • 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
0.11.95
  • 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
0.11.94
  • 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
0.11.93
  • 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
0.11.92
  • 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
0.11.91
  • 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
0.11.90
  • 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
0.11.89
  • 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
0.11.88
  • 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
0.11.87
  • 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 http://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program