Popular Symfony components used by CMSes

Bolt CMS, eZ Platform and Drupal 8 are just a few content management tools using Symfony Components for a number of core functionalities. This is well known, but often a deeper insight into exact what pieces these various projects deem valuable for taking into use in the projects. Here are eight components that are popular among these tools.

The Symfony Class Loader Component loads your project classes automatically if you follow standard PHP conventions. This component enables PHP developers to defer class file loading to the compnents so that they don't have to worry about this low level function. This component is used by Concrete 5, Drupal 8, eZ Platform and Sulu CMF.

The Symfony Console Component eases the creation of functional and testable command line interfaces. The renaissance of the command line requires that PHP applications have a pleasant way to create CLI interfaces. Use of the component delegates basic functions to the library and enables developers to focus on the functionality. The console component is used by Grav, Bolt CMS, Drupal 8, eZ Platform and Sulu CMF.

The Symfony Debug Component provides developers with tools to ease debugging of PHP code. It creates and extensible and easy to approach debug toolbar that is familiar across applications using the component. Many tools extend the functionality of the toolbar. The component is used by Bolt CMS, Drupal 8, eZ Platform, Sulu CMF and PageKit.

The Event Dispatcher Component provides tools that allow your application components to communicate with each other by dispatching events and listening to them. This is similar to hooks used by WordPress and Drupal, but is an implemetation of the Mediator Pattern. The component is used by Grav, Concrete 5, Drupal 8, eZ Platform and Sulu CMF.

The Symfony Form Component a tool to help you solve the problem of allowing end-users to interact with the data and modify the data in your application. Drupal 8 still implements it's own Form handing components, but Content Management Systems such as Bolt CMS, eZ Platform and Sulu CMF have delegated this to an external components.

The Symfony HttpKernel component provides a structured process for converting a request into a response by making use of the EventDispatcher component. This is the very base of most applications built with PHP and provides the building blocks to create flexible and fast HTTP-based frameworks. It is used by CMSes such as Concrete 5, Drupal 8, eZ Platform and Sulu CMF.

The Symfony CMF Routing Component extends the core Symfony routing component to allow more flexibility. The most important difference is that the CMF Routing component can load routing information from a database. This is ideal for CMSes and is used by Bolt CMS, Drupal 8, eZ Platform, Sulu CMF and PageKit.

The Symfony YAML Component loads and dumps YAML configuration files. The Symfony Yaml component parses YAML strings to convert them to PHP arrays. It is also able to convert PHP arrays to YAML strings. This provides for a common configuration language between CMSes like: Grav, Bolt CMS, Drupal 8, eZ Platform, Sulu CMF and Joomla!

The Twig Templating Engine is an extensible, flexible and secure template engine for PHP. It provides for a safe and performant layer for different applications written in PHP to loop and manage other functions when displaying content for the users. This templating engine is not a part of Symfony, but is closely related. It is use by CMSes such as Grav, Bolt CMS, Drupal 8, eZ Platform, Sulu CMF and PageKit.