Just as a mountain climber will choose a steel carabiner over a plastic one, a developer would much rather work with a framework that simplifies both his life and his daily work.
Otherwise, so much code to write
In the IT world, it is not a rare occurrence for people to become concerned with the performance of an application… once they reach the end of the project!
That is, once everything has been designed at both the functional and technological level.
Even if you were to take everything apart, performance optimization is no easy task.
On the other hand, Symfony was conceived from the start to be fast, with a strong emphasis on performance.
By way of comparison, Symfony is about 3 times faster than Symfony Version 1.4 and Zend Framework 1.10, while also taking up 2 times less memory.
Whatever your needs are, Symfony will be adaptable. Its dependency injector and the Event Dispatcher make it entirely configurable, with each of the bricks being fully independent.
A 3-in-1 framework, of sorts:
1. Full Stack (complete version): you want to develop a complex application and you need many functionalities.
2. Brick by brick: you build your framework according to the functionalities that you will need.
3. Microframework: as a standalone, Symfony can also be used to develop a specific functionality in one of your projects. Without having to redevelop everything and without installing the entire framework, but only the specific brick that you need.
Permanence is also something that relates to long-term support. Today, this support is naturally provided by SensioLabs.
But there is also an entire ecosystem that has grown up around Symfony since its launch: the community (mailing lists, IRC, etc.) and the many other service companies that have invested in the framework.
Lastly, it is also with a view towards sustainable development that Symfony is distributed under Open Source MIT license, which does not impose constraints and allows the development of Open Source as well as proprietary applications.
From the smallest brick to the complete core itself, everything is presented as a “bundle” (or plug-in in Symfony language) in Symfony.
Each bundle is intended to add functionality to the framework, of course, and each bundle can also be reused in another project or shared with the rest of the community.
In any case, the system of bundles allows everything to change within Symfony, including the core itself.
Using the system’s interface contracts between bricks, the behavior of the framework thus can be changed at will, without requiring complete reconfiguration.
Developed by SensioLabs, major versions of Symfony are all supported for 3 years by the company.
And even for life as far as security-related issues are concerned.
For even greater stability, the minor versions of Symfony’s contract and interface are also guaranteed and compatibility between all minor versions will be ensured on the API defined by the public interfaces.
As a highly functional environment, Symfony also guarantees a certain comfort level for developers. By taking care of a number of unpleasant tasks (development of minor functionalities, for example),
Symfony allows developers to focus on the actual highlights of an application and to both fully validate their role and improve their productivity.
Among Symfony’s tools designed to make the life of a developer much easier, there is the legendary Web Debug Toolbar, as well as native support for development environments, detailed error pages or even native security.
Completely flexible to satisfy the needs of professionals and advanced users alike, Symfony is also very accessible.
Plentiful documentation, community and professional support, and “embedded” best practices within the framework (best practices that are natively applied without having to be aware of them or understanding them) allow a beginner to very quickly feel at ease with Symfony.