The main reasons we use Symfony for web application developments

Benoit Schneider
6 min readApr 1, 2018

--

At Outsourcify we work on projects of varying sizes, from small sites with a few pages to complex business applications. Depending on the case, we recommend different technical solutions (we do a lot of Javascript SPA and Wordpress also), but for the most complex cases, when we have to chose a technology to build large web applications that require several weeks or months of work for several web developers, Symfony is our framework of choice.

My story with Symfony

To be honest, there is first of all a personal reason why I chose Symfony in the first place. Being French, I was in contact with the first version of Symfony early, more than 10 years ago and have been using it since, progressing with the evolution of the framework. Symfony was originally developed by a Frenchman, Fabien Potencier, then was supported by his web development agency, SensioLabs. I don’t even remember exactly how I got to know about it but for sure it was easier for me to learn about its existence on French language websites. The fact that a documentation and French tutorials were available also helped.

I worked at that time (2002/2003) as a IT consultant developer for large groups in Paris (EDF, GDF, Alstom) and the standard for large business applications was Java back then. I was working on the maintenance and evolution of the code of existing apps created with Spring, Struts, Hibernate mostly.

In my free time, I sometimes developed personal websites (for example the Eklektik Rock webzine, which I rebuilt several times) and I used PHP for that, this language already seeming to me at the time easier to use in a simple local environment. I was trying out the different frameworks available, the first one I mastered was Mojavi, which I even adopted for a small project for a client back then.

When I decided to leave my job in Paris and move to Thailand, I had already discovered the first version of Symfony which was released in 2005. The transition from Java libraries that I used at work to an MVC framework like Symfony was quite simple, the modern PHP frameworks are very similar to Spring MVC, Propel (at the time the ORM proposed with Symfony, since replaced by Doctrine) had similarities with Hibernate.

By becoming a freelance, it seemed obvious to me that I was not going to continue to use the Java programming language, not that it would have been impossible for me but the ease of use and installation on inexpensive PHP servers, and the fact that Symfony was open source were obvious arguments in its favor. I was not working as a team anymore, I was working remotely for distant customers and I feel I made the right choice with Symfony, on the projects I worked on at the time (I started with a hotel booking app) but also in the long term because Symfony has evolved since then and is today in my eyes one of the best PHP frameworks. I guess it must also be used today by some of the teams of large French companies in which I worked 10 years ago.

Among so many popular PHP frameworks, why choose Symfony?

It would be presumptuous to say that I tried all the other PHP frameworks but I did try several at different times, for example Zend, CakePHP, CodeIgniter, and most recently Laravel, the main competitor of Symfony. It’s very personal but I have always returned to Symfony, even Laravel, which in fact takes over the majority of its concepts, and actually several components that are copied directly from Symfony, did not seem to me as clear and especially as robust as Symfony. Today as I lead teams of several PHP developers within my own web development agency, it makes even more sense.

Symfony has all the features that can be expected from a web framework, excellent documentation, an ecosystem of complete plugins (over 1000 bundles), anything that can speed up the creation of professional web applications that are easy to maintain. It is a series of open-source components, completely free to use and its libraries provide standardized tools that can be used in many different projects and avoid repeating repetitive tasks. It follows the Model View Controller (MVC) design pattern, which makes it possible to separate concerns and makes the work of everyone more clear when working in teams.
This open source framework was born in 2005 and was the first framework to support PHP version 5.3, it since evolved with PHP to the latest PHP 7.2, it has a huge community of users and contributors all over the world and is today the most used PHP framework in many countries in the world (including of course France but not Thailand where Laravel has the preference of PHP developers).

In my company, we used Symfony to develop various applications for sectors such as social networks, content management, online billing, marketplaces, inventory management, insurance comparator and so on.

Main reasons for choosing Symfony

A Flexible Architecture: the Symfony Framework is a well-organized framework that is easy to use and learn. Its architecture allows developers to create sustainable web applications in the easiest way possible. Symfony has all that is expected from a modern framework, a clear structure that allows you to easily find your code as others’, thanks to reusable components and a series of good practices that the use of the framework implies. Its performances, while not always ideal, are excellent.

Innovation: Symfony and the entire community has developed a sense of curiosity that goes well beyond PHP, and its creators have also worked to advance PHP as a whole, with some Symfony components now being used by other frameworks, CMS, or known libraries. Many of its concepts come from Java, like the dependency injection, but Symfony helped to adapt them to the PHP world. The Debug Toolbar and Profiler Toolbar is an example of a tool that helps programmers to develop in a productive way, it’s difficult to imagine coding PHP without it.

Interoperability: Symfony allows to build applications that meet the needs of any business, as long as it’s web based. It respects the existing PHP standards: PHPUnit, naming conventions for classes, and so on. Symfony also allows you to use some of its components such as translation management, dependency injection, routing, form management, and more, without necessarily using the framework its entirety. It also makes good use of external libraries such as Doctrine or Swiftmailer rather than trying to reinvent what works well elsewhere.

Ecosystem: Written in PHP, a huge number of useful third-party plug-ins (called bundles in Symfony). It’s practically difficult not to find a bundle that can help doing anything you would want. The Symfony framework is also gaining popularity and recognition for ease of installation on any server and stable performance on Linux (even on Windows). It supports any database such as MySQL, PostgreSQL, SQLite, MongoDB. It even supports automated form validation and user input validation to avoid SQL injections and XSS attacks.

Reputation: Rapidly adopted worldwide by PHP developers since its launch in 2005, Symfony today offers a stable environment that is both popular and internationally recognized. The number of its references has increased considerably since its launch, we can even say that Symfony participated in the democratization of PHP and its use by major companies while the language had a picture of a lack of robustness in a professional environment still not so long ago (and still has, some might say but I don’t agree). Symfony is also an active community of developers and contributors who participate in the ongoing enhancement of the framework and associated tools.

Cost: Symfony automatically has low user fees being totally open source. Symfony enables you to develop custom and robust applications for all kinds of businesses, and allows developers to fully control the configuration and customization of these applications. It has a collection of tools to help programmers test, debug, and document the development process to match enterprise specifications. The only cost implied are the work of the developers and hosting.

We provide symfony development services. If you would like to chat with a Symfony developer from our team, please contact us at Outsourcify.

--

--

Benoit Schneider

Founder and CTO at Outsourcify, a web agency in Bangkok. Interested in IT, philosophy, progressive metal, guitar playing, taking care of my daughter.