Toll-free number 24/7:

+38 (097) 806-01-89

Customer Service e-mail:

info@armedsoft.com

Symfony Overview

January 20, 2020

Symfony Overview

A complicated website development process without any doubt should incorporate Symfony Framework.The thing is that php framework includes a set of components which provides creation of various projects ranging from the easiest to the most extensive ones.  

Here are the main reasons why Symfony should become a preference:

  • Ratio of speed and development quality is a significant advantage.
  • There are algorithms that provide data protection and overall website security.
  • The modules used during website development may be extended depending on the needs.
  • Symfony enables creation of structural data and alteration of the ready-made classes.
  • Flexibility allows integrating with the other high powered CMS, particularly Drupal.
  • A comfortable and understandable administration panel is among the pluses.
  • The other advantage is frequently updated and accessible documentation.

Symfony Components

BrowserKit – reproduces browser behavior and allows clicking the links, etc.

CssSelector – transforming of Css selectors into XPath.

Config – responsible for configuration values processing, their loading, combining, etc.

Console – provides CLI commands creation in PHP applications. CLI toolset, or Command line interface, provide a simplified performance of standard day-to-day operations.

Debug – simplifying of code customization.

EventDispatcher – the tools of this component provide an interaction among components of your application.

Filesystem – fulfills a set of functions, as for creating/copying/deleting of a file, directory, etc.

HttpClient – is responsible for obtaining of HTTP-resources.

HttpFoundation – interaction with HTTP takes place due to the object-orientated approach.  

HttpKernel - transforms Request into Response.

Routing – this component is used for route setting in PHP application.

Security – guarantees web-application security.

Symfony Services

This framework utilizes the multitude of services which can be chosen for usage in the further work. There is an opportunity to download them via composer or to create by yourself. These services are various ones ranging from databases operations, email sending, page caching, etc.

Each of the Symfony services has a unique number and is stored in a container. In order to get to know whether a certain service is accessible, it is necessary to run the following command, having entered the project directory:

bin/console debug:autowiring 

Another way is to search via the key word:

bin/console debug:autowiring [<keyword>].  

There is also another term – bundles. It means a connected chain responsible for a possibility of PHP-class allocating in a container. Bundles are added to the project via composer:

composer require presta/sitemap-bundle.

The next step is linking to app/AppKernel.php:

public function registerBundles()

{

    $bundles = array(

...

        new Presta\SitemapBundle\PrestaSitemapBundle(),

    )

...

}

Installation process is completed now. However, there are bundles which necessitate additional configurations in app/config/config.yml. Thus, it will be essential to search for extra instructions regarding a certain bundle installation.

Here are the examples of some bundles.

SonataAdminBundle – administration formation.

FOSUserBundle – is used for user registration and email confirmation.

KnpMenuBundle – menu creation. 

BreadcrumbsBundle – based on its name, this bundle is responsible for ‘bread crumbs’ creation.

LiipImagineBundle – is used with an aim of image operations, as for size changing, compression, cropping, etc.

A more detailed bundle list and its interpretation may be found on the official Symfony website: https://symfony.com/doc/bundles/.

All the above-mentioned advantages of the framework significantly simplify the work for developers. At each of the development stages, there are tools that eventually contribute to obtaining an efficient and quality product. Thus, this is the key goal for both parties – team of developers and the client.

Other Articles

Our Recommendations