Improve Your Efficiency in OroCRM Coding

If you develop OroCRM applications, you know that you develop Symfony applications. And you can improve your efficiency by using a good integrated development environment (IDE) and some additional tools. We use PhpStorm in development, which is a JetBrains product (maybe the best of the IDEs), and we also use a great tool – Symfony Plugin.

Symfony Plugin is a free tool. It should be installed once but must be enabled and configured for each Symfony project.

How to install:

Go to Preferences > Plugins and click button Browse repositories…


Search for “Symfony” and click Install plugin button and confirm plugin installation to continue.


In order to enable and configure the plugin you should click the Project Settings hyperlink, or alternatively go through Project Settings in Symfony2 Plugin and select the check-box Enable Plugin for this Project. Clicking OK will save our changes to the settings. After that restart the PhpStorm.


Now we have an ability to use the additional features. See the list below.

Dependency Injection Container

  • References for services in ContainerInterface::get() and detect ContainerInterface::get() result type


  • References for services, tags, events, methods, … inside yaml, xml and php


  • An indexer to provide live editing without a compiled container and tagged class indexer


  • ORM QueryBuilder support, including chaining and nested methods
  • References and TypeProvider for doctrine getRepository


  • Template names in all file references
  • Provide Template implements and extends goto on linemarker
  • Assets file references like javascript, stylesheets and more
  • Supports @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, extensions, …


  • Autocomplete route name in twig templates
  • Go to for routing name methods
  • CodeFolding to display real route url instead of its name

Symfony Plugin is really great tool for improving your efficiency. It speeds up development and decreases the number of mistakes. We haven’t described the full list of Symfony Plugin additional abilities. There are really a lot of them – some we do not use, and some we hardly ever use. In this post we tried to describe the most often used abilities by us. The only downside this plugin has – it needs a lot of computer resources. So keep your computer updated and improve your coding productivity.

You may also want to read: